BenBE's humble thoughts Thoughts the world doesn't need yet …

02.04.2014

Statische FreePascal-Bibliotheken mit GCC verwenden

Filed under: Software — Schlagwörter: , , , , , — BenBE @ 22:04:40

Nachdem Martok nach Erhalt des Tumbleweed-Awards bereits drohte, auf dessen goldene Ausführung zuzusteuern, und ich für eines meiner Projekte eh noch mal etwas Unterstützung brauchte, habe ich mich mal des Cases angenommen, um zu schauen, wie man Code von FreePascal statisch in sein C-Programm eingebunden bekommt. War auch – ehrlichgesagt – nicht ganz uneigennützig, da die betroffene Bibliothek durchaus für eigene Projekte bereits ins Auge gefasst wurde, nur wegen „falsche Programmiersprache“ bisher noch nicht näher betrachtet wurde. (more…)

Flattr this!

13.03.2014

BIND9 mit Stoßdämpfer

Filed under: Server,Software — Schlagwörter: , , , , , , , , — BenBE @ 10:03:27

Nachdem ich ja längere Zeit eher Probleme hatte mit Bind9, weil er sich nicht wie gewünscht mit DNS Dampening betreiben ließ, sondern nur mit DNS Response Rate Limiting, was eher schlecht als recht funktioniert, gibt es inzwischen einen Lichtblick. Mit der Unterstützung von Wonka ist es gelungen, den Patch von Lutz Donnerhacke auf aktuelle Bind9-Versionen zu portieren. Bereits nach kurzer Zeit gab es positives Feedback von Upstream, weshalb an dieser Stelle auf das Repository mit den gepatchten Debian-Quellen verwiesen sein soll, aus denen sich leicht eigene Packete mit DNS Dampening erzeugen lassen. (more…)

Flattr this!

10.11.2013

SSL und das Caching

Filed under: Software — Schlagwörter: , , , , , , , , — BenBE @ 23:46:07

Manche Leute könnten es vielleicht mitbekommen haben, aber falls nicht, dann hier die kurze Info: In letzter Zeit war das Blog in Bezug auf SSL leicht kaputt, weil das Caching gesponnen hat. Das dürfte sich jetzt aber erledigt haben. (more…)

Flattr this!

12.03.2013

Automatische Vollständigkeit

Filed under: Software — Schlagwörter: , , , , — BenBE @ 19:11:00

Wer kennt es nicht: Man schreibt gerade so schön in der Konsole einen kilometerlangen Bash-Einzeiler und hat gerade keine Lust die Halbzeilenlange Option seines Lieblingsbefehls – für die es, trotz dem das halbe Alphabet bei den Kurzoptionen noch frei ist, keine Abkürzung gibt – auszuschreiben, als man sich nun schon zum hundertsten (oder tausendsten) Male darüber ärgert, dass die Auto-Vervollständigung der Shell mal wieder nicht funktioniert. Man wollte schon immer einmal eine Vereinfachung haben, die einem genau hier hilft und den lästigen Tippaufwand stark verringert. Mit etwas Bash-Skripting kann hier nachgeholfen werden. (more…)

Flattr this!

06.03.2013

Zero is too large!

Filed under: GeSHi — Schlagwörter: , , , , , — BenBE @ 22:36:02

Welcome to our new series of strange bugs. Today we’ve got a brand new candidate called emptyness which is a really great star on the floor of PHP bugs. I was being stumbled upon this one by Thomas Puls who mailed me about the fact, that if you highlight a single 0 with GeSHi, it magically disappears. (more…)

Flattr this!

27.08.2012

News in and around GeSHi 1.0.8.11

Filed under: GeSHi — Schlagwörter: , , , , , , , — BenBE @ 00:00:14

Being way overdue, and not only because some other projects askednagged for a release, I’m really pleased I finally had everything together last week so I could do the release of GeSHi 1.0.8.11. Besides the 18 new language files there are also two important bugfixes addressing problems in contrib scripts. (more…)

Flattr this!

06.08.2012

Last steps towards GeSHi 1.0.8.11

Filed under: GeSHi — Schlagwörter: , , , , , , , , — BenBE @ 01:06:12

Hi guys,

I know it’s been quite a bit since the last release of GeSHi and even though there’s been some confusion about what the most recent version actually was, I’ll probably lighten up the confusion a bit and present some good news to all of you who are waiting for some of the most recently included language files. But first things first. (more…)

Flattr this!

23.06.2012

RRDTool für PHP 5.4

Filed under: Software — Schlagwörter: , , , , , , , — BenBE @ 22:58:54

Nach dem letztens endlich das Packaging für die von mir etwas für aktuellere PHP-Versionen gepflegte RRDTool-Extension abgeschlossen war, dachte ich eigentlich, dass das soweit auch für PHP 5.4 funktionieren sollte. Da ich wegen dem ausstehenden Support für den Suhosin-Patch aber noch nicht upgraden wollte, gab es natürlich wenig Chancen, das selber zu überprüfen.

Vor knapp 4 Wochen habe ich mich dann aber doch hingesetzt, um meinen Server auf PHP 5.4 zu aktualisieren. Nachdem das Update selbst recht unproblematisch verlief und bis auf wenige Extensions, die einen expliziten Arschtritt zum Compilen haben wollten, alles lief, war die RRDTool-Extension dran. Und (Grüße an Murphy) es wollte nicht compilieren. Aber glücklicherweise waren das nur ein paar Kleinigkeiten, die sich im Wesentlichen darauf beschränkten, den Typ pval durch zval beim Abfragen von Parametern auszutauschen.

Sobald das durch war, funktionierte das auch mit dem Compilieren und alle Scripte mit der Extension liefen wieder wie immer.

Die neu, nun mit Support für PHP 5.4, gepackagedte Version gibt es ab sofort; nach dem ich nach einer stressigen Zeit dazu gekommen bin, das alles zusammenzupacken. Außer der oben genannten Änderung ist nix an Features hinzugekommen. Wird also PHP 5.4 nicht benötigt, reicht auch die alte Version. Die neue RRDTool-Extension für PHP 5.4 (Version 0.2) gibt unter dem genannten Link.

Flattr this!

29.01.2012

Zu faul zum Suchen

Filed under: Server — Schlagwörter: , , , , , , , — BenBE @ 02:07:54

Hätte ich nicht schon wieder zwei Abende damit zugebracht, die Ursache für einen Fehler bei einem Joomla-Update zu suchen, würde ich es ja unter der Kategorie „Running Gag“ verbuchen, dass die Joomla-Entwickler jedes Mal auf’s Neue sich in der Kreativität ihrer Bugs übertreffen. War es beim einem Komponenten-Update noch das Unvermögen konsistente Datenstände zu halten, so ist es in Sachen Software-Update die Abwärtskompatibilität zu seinen eigenen, früheren Versionen. (more…)

Flattr this!

24.08.2011

Schleifchen erwartet

Filed under: Software — Schlagwörter: , , , — BenBE @ 12:30:50

Unter der Kategorie Kuriositäten kann man glaube folgenden GCC-Bug abhandeln, der bei mir mit folgendem Source auftrat:

        // Run the job we've taken
        if(cleanup_func) {
            pthread_cleanup_push(cleanup_func, cleanup_arg);
        }

        job_func(job_arg);

        if(cleanup_func) {
            pthread_cleanup_pop(1);
        }

Wobei job_func ein normaler Callback-Typ der Form

typedef void (* dispatch_func_t)(void *);

ist, also einen Pointer entgegen nimmt und nix zurückliefert. Nunja. Versucht man obigen Source (im Zusammenhang mit etwas mehr Source eines Thread-Pools zu compilieren, erhält man recht überraschend eine Fehlermeldung vom GCC (4.6.1-4):

gcc -g -Wall -Werror -std=c99 -I./src -O9 -o ./obj/threadpool.o -c ./src/threadpool.c
./src/threadpool.c: In Funktion »_threadpool_dowork«:
./src/threadpool.c:120:9: Fehler: expected »while« before »job_func«

Und ja: Der will da wirklich ne While-Schleife haben! Geben wir sie ihm also:

        // Run the job we've taken
        if(cleanup_func) {
            pthread_cleanup_push(cleanup_func, cleanup_arg);
        }

        //GCC fails if I DON'T write a while loop here. Let's make it happy!
        while(0);

        job_func(job_arg);

        if(cleanup_func) {
            pthread_cleanup_pop(1);
        }

Und der GCC ist zufrieden.

Flattr this!

Older Posts »

Powered by WordPress