2010-03-10

Buch: JavaScript: The Good Parts

Seit einer Woche liegt "JavaScript: The Good Parts" auf meinem Schreibtisch.

Sehr erfrischend, wie man ein kurzes (100 Seiten Text + 50 Seiten Anhang) und dennoch sehr nützliches Buch schreiben kann.

Douglas Crockford wendet sich an erfahrene Programmierer und erläutert für diese die wesentlichen Spracheigenschaften von JavaScript. Er unterteilt auch in gelungene und weniger gelungene Features und gibt Empfehlungen, welche Sprachfeatures man lieber nicht benutzen sollte.

Alles in allem ein guter Kauf und für mich das bisher beste Buch zu JavaScript als Sprache - weil es sich auf die Sprache und nicht wie alle anderen Bücher auf das Interface zum Browser konzentriert.

2009-11-25

Vortrag: Was eine WAF (nicht) kann

Gestern habe ich auf dem  OWASP-Stammtisch München einen Vortrag zum Thema Was eine WAF (nicht) kann gehalten.  Es gab jede Menge Diskussionen und hat mal wieder richtig Spaß gemacht :-)

2009-11-18

Kurioses vom C Präprozessor



Schauen wir uns mal dieses File an:

#define CPP1(s) #s
#define CPP2(s) CPP1(s)
char *a = CPP1(HELLO);
char *b = CPP2(HELLO);

CPP1() benutzt #s, den Operator im C-Preprozessor, der einen Namen in einen String umwandelt. 

Eigentlich sollte man ja erwarten, das CPP1 und CPP2 identisch sind. Auf der ersten Blick ist das auch so:

$ gcc -E t.c 
#...
char *a = "HELLO";
char *b = "HELLO"; 


Aber wenn man HELLO als Symbol definiert, ändert sich das Bild:

$ gcc -D HELLO=WORLD -E t.c
 # ...
char *a = "HELLO";
char *b = "WORLD";


Wieder mal was über den C-Preprozessor gelernt.