PlanetXML

PHP Manual in VIM einbinden

In das Hilfesystem von VIM lassen sich auch eigene Dokumente einbinden. Da ich häufig in PHP programmieren habe ich mich daran gemacht das PHP-Manual in das entsprechende Format zu konvertieren.

Update 2007-08-06: Das Skript zum erstellen der Hilfedatei steht jetzt zum Download bereit. Damit kann nun jeder eine aktuelle Version erstellen. Weitere Fragen zu dem Skript kann ich leider nicht beantworten da es ziemlich genau zwei Jahre her ist das ich das letzte mal etwas mit PHP entwickelt habe.

"PHP Manual in VIM einbinden" vollständig lesen

PHP-Parser in Java mit JFlex und ANTLR

Der Quellcode zeigt wie man JFlex und Antlr kombinieren kann um einen Parser für PHP zu entwickeln. Der Parser gibt lediglich die Lexer-Token und den Syntaxbaum aus. Ein Testscript vergleicht dabei die Ausgabe des Lexers mit der Tokenizer-Extension von PHP. Der Parser ist weniger getestet und hat sicher noch einige Bugs da die Grammatik von lalr/yacc nach la(1) transformiert werden musste.

Der Code ist vermutlich eher für Lernzwecke interessant, wer PHP Quellcode unter Java ausführen will sollte sich Cauchos Quercus mal ansehen.

"PHP-Parser in Java mit JFlex und ANTLR" vollständig lesen

Getter und Setter automatisch dokumentieren

Kommentare sind schön und gut, so lange sie mit dem Quellcode übereinstimmen. Dank JavaDoc kann aus ihnen auch eine übersichtliche Dokumentation erzeugt werden. Für triviale Methoden wie Getter und Setter ist der Aufwand, die Kommentare zu schreiben und mit dem Code synchron zu halten allerdings unverhältnismäßig groß. Dieses PHP-Script erzeugt daher die Dokumentation für diese Methoden automatisch aus dem Quellcode. Das Script kann sowohl an der Kommandozeile mit der Java Datei als Parameter aufgerufen werden als auch als Filter den Java Code von der Standardeingabe lesen.

"Getter und Setter automatisch dokumentieren" vollständig lesen

Intelligente Anführungszeichen in VIM

Auf weblogs.oreilly.com wird gerade vorgestellt, wie man mit einem vim Plugin komfortabel verschiedene Unicode Anführungszeichen eingibt. Eine einfache Version für deutsche typographische Anführungszeichen habe ich seit einer Weile auch in meiner .vimrc. Da ich größtenteils Quellcode bearbeite sind diese allerdings nur für Latex Dateien aktiviert. Hier die nötige Konfiguration:

autocmd FileType tex inoremap <buffer> " „“<LEFT>
autocmd FileType tex inoremap <buffer> ' ‚‘<LEFT>

"Intelligente Anführungszeichen in VIM" vollständig lesen

Patch für Serendipities rss.php

Einige meiner Blog-Einträge enthalten HTML-Entities, z.B. zur Kodierung von Umlauten. In den RSS und Atom Feeds sind diese Entities allerdings nicht bekannt und verursachen so eine Fehlermeldung vom XML Parser. Um dieses Problem zu beheben habe ich die rss.php so modifiziert, dass den Feeds eine passende Doctype Deklaration vorangestellt wird.

Beim Testen mit dem Feed Validator stellte sich dann noch heraus dass die Namespace Angabe Fehlerhaft war und ein rdf:about Attribut beim channel Element fehlte. Der komplette Patch ist an angehängt.

"Patch für Serendipities rss.php" vollständig lesen

Code-Templates für Java

In Entwicklungsumgebungen ist es ja inzwischen üblich mit Templates und Wizards zu programmieren, dies geht natürlich auch mit VIM. Dieses Script stellt einige Abkürzungen zur Verfügung, aus sout"Hello World!" wird z.B. System.out.println("Hello World");. Auch try/catch oder Schleifen lassen sich so einfacher eingeben.

Die Erstellung von get/set-Methoden wird besonders vereinfacht, F2 erzeugt eine Get-Methode, F3 eine Set-Methode und F4 beides. Dabei wird jeweils nur nach dem Typ und Namen der Variable gefragt.

java.vim, automatisch einbinden per autocmd FileType java source c:\programme\vim7\java.vim

"Code-Templates für Java" vollständig lesen

Performance von C und Java bei Genetischen Algorithmen

Jörn Horstmann,

: Die Messungen wurden damals mit Java 1.4 und der Client-VM durchgeführt. Mit Version 1.5 und der Server-VM sollte der Unterschied deutlich geringer Ausfallen. Ich bin allerdings noch nicht dazu gekommen erneut zu messen.

Ein genetischer Algorithmus ist eine Metaheuristik die zur Lösung von NP-schweren Optimierungs­problemen eingesetzt werden kann.

Bekannte Probleme zu deren Lösung genetische Algorithmen eingesetzt wurden sind das Resource Constrained Project Scheduling Problem (RCPSP), das Travelling Salesman Problem (TSP) und das Vehicle Routing Problem (VRP).

Da die Laufzeit des Algorithmus bis zum Finden einer guten Lösung mitunter sehr lang sein kann spielt die Performance einer Implementierung eine große Rolle. Im folgenden wird daher der Performance­unterschied zwischen einer Implemen­tierung in C und einer äquivalenten Implemen­tierung in Java untersucht.

"Performance von C und Java bei Genetischen Algorithmen" vollständig lesen

Hello World in Assembler

Einen guten Einstieg in die Assembler-Programmierung bietet das Buch Programming From The Ground Up von Jonathan Bartlett, das auch als Ebook erhältlich ist. Die Beispiele im Buch beziehen sich allerdings auf Linux und können und Windows nicht ohne Änderungen verwendet werden, da sie direkt auf Kernelfunktionen zugreifen.

"Hello World in Assembler" vollständig lesen

Sonderzeichen maskieren mit XSLT

Bei der Erzeugung von Textdateien wie CSV oder SQL kommt es öfter vor dass man den Ausgabestring in Anführungszeichen einschließen will. Dieser darf dann natürlich selber keine Anführungszeichen enthalten oder diese müssen mit einem Backslash maskiert werden. Das folgende Template ersetzt vorgegebene Zeichen an Hand einer Tabelle.

"Sonderzeichen maskieren mit XSLT" vollständig lesen