Bambalam PHP EXE Compiler

Bei Bambalam handelt es sich trotz seines Namens nicht wirklich um einen Compiler. Viel mehr embedded Bambalam PHP und die entsprechenden PHP-Dateien in eine EXE. Der Code wird  immer noch interpretiert. 

Dennoch ist Bambalam eine interessantes Programm,  ermöglicht er doch mit PHP ausführbare Konsolenprogramm zu erstellen. Oft ist es mit PHP möglich schneller zum Ziel zu kommen als mit anderen Programmiersprachen. Es war bisher jedoch nur schlecht möglich diese Programme auf anderen Rechnern auszuführen, da immer eine PHP-Installation vorhanden sein musste. Mit  Bambalam  ist das nicht mehr notwendig. Es können PHP 4 und PHP 5 verwendet werden. Auch ist es möglich  PHP-Erweiterungen einzubinden. Weitere Informationen unter: www.bambalam.se/bamcompile

PHP-Reboot

PHP-Reboot ist eine an PHP angelehnte Sprache. Sie wird momentan von Rémi Forax für die Java-Virtual Machine implementiert und ist dadurch auf allen Java-Platformen lauffähig. Explizit wird hier Android genannt. PHP-Reboot soll keine eins-zu-eins Umsetzung von PHP werden, der Syntax und  Sprachumfang soll aber ähnelich sein. Die Sprache soll mit weniger Semikolons und $-Zeichen auskommen. PHP kommt mit Derby als integrierte Datenbank und bringt auch einen eigenen Webserver auf Basis von Grizzly. Die Sprache unterstützrt nativ XML und SQL, ws werden also keine anderen Tools benötigt um eine Web-Application zu erstellen.

PHP-Reboot kann in einer frühen Version unter code.google.com/p/phpreboot heruntergeladen werden.

Web-DicomViewer

Als Projekt für das Fach "Medizinische Informatik" an der HTWG Konstanz wurde ein DicomViewer erstellt.

Der Viewer kann über test.ragersweb.de/dicom aufgerufen werden. Für die Nutzung empfehlen wir einen Browser auf Webkit Basis (Chrome oder Safari). Der Viewer ist mit einer für Touchscreens optimierten Oberfläche auf Basis von jQuery Mobile ausgestattet, dadurch kann er auch mit Tablet-Computer ideal genutzt werden. Eine mögliche Nutzung des Viewers wäre die einfache webbasierte Weitergabe von Dicom-Daten an den Patienten oder eine medizinische Einrichtung. So könnten anstatt der bisher üblichen CDs einfach ein passwortgeschützter Link an den Patienten oder den Arzt weitergegeben werden. Alle zu dem Fall gehörenden Dicom-Daten könnten dann einfach über den Browser gesichtet werden. Bei dem DicomViewer handelt es sich um einen ersten "Proof of Concept". Er ist noch nicht mit allen notwendigen Features ausgestattet. Trotzdem lässt sich schon in dieser frühen Phase erkennen, welches Potential in webbasierten Systemen für den medizinischen Einsatz stecken. 

Features des DicomViewer

  • Webbasierter DicomViewer mit touchscreenoptimierter Oberfläche
  • Laden von Dicom-Dateien
  • Parsen und Anzeigen von beliebigen Dicom-Attributen
  • Live-Volltextsuche über alle Attribute
  • Anzeigen von Dicom-Bildern in den Formaten JPEG, JPEG2000, JPEGLL, TIFF
  • Clientseitiges Anpassen von Gamma- und Helligkeitswerten sowie Invertieren des Bildes 

Download: Technische Dokumentation

Ubuntu als Webserver einrichten

Einen Linux-Server einzurichten ist eine nicht zu einfache Aufgabe. Nachfolgend eine Aufstellung wie man ein Ubuntu 9.10 als Webserver konfiguriert. Ich schreibe dieses Tutorium da es unter Ubuntu nicht so einfach möglich ist ein Funktionierendes PHP mit PDO und SQLite zu installieren. Werden die einzelnen Module nur über apt-get installiert kommt es mit SQLite zu inkompatiblen Versionen , was man nur durch manuelles kompilieren und einige Anpassungen an den Makefiles wieder funktionsfähig bekommt. Wenn aber alles wie in diesem Tutorium beschrieben installiert wird ist das nicht notwendig. Anscheinend nimmt Tasksel einige Einstellungen bzw Konfigurationen vor die durch das manuelle apt-get nicht durchgeführt werden.

PHP Fat-Free Framework

Das Fat-Free Framework ist ein interessantes PHP Framework, der große Unterschied zu anderen Frameworks ist das es aus nur einer 55 Kb großen PHP-Datei besteht, so kann es sehr einfach eingebunden werden. Dabei braucht es sich vom Funktionsumfang nicht zu verstecken.  

Das Framework bietet folgende Features:

  • MVC 
  • Template-Engine
  • Form-Handler
  • Command-Line-Mode
  • SQL-Handler
  • ORM
  • Unit Testing

Des weiteren kann es durch Plugins erweitert werden. Leider steht es nur für nicht kommerzielle Nutzung unter der GPL v3. Weitere Informationen unter: fatfree.sourceforge.net

WebServices mit YQL

YQL steht für "Yahoo! Query Language" sie ist eine an SQL angelehnte Sprache bzw. ein von Yahoo gehosteter Webservice der es ermöglicht auf einfache weiße auf zahlreiche Webservices und APIs von Yahoo (und auch einigen anderen Firmen) zuzugreifen.

Eine englischsprachige Einleitung in YQL gibt es unter developer.yahoo.com/yql

Statements kann man unter  developer.yahoo.com/yql/console testen. Ohne einen API-Key dürfen maximal 10.000 Anfragen pro Stunde an den Yahoo-Server gestellt werden.

Propel unter Windows

Propel ist ein Object-Relational Mapper für PHP. Er setzt auf PDO als Datenbank- abstraktionsschicht. Bei der Installation unter Windows kann es zu einigen Schwierigkeiten kommen.

Nachfolgend eine Installations-Anleitung für Propel 1.4 :

  • Starten einer Konsole (Ausführen -> cmd.exe).  
  • Wechseln in das "PEAR"-Verzeichnis unterhalb der PHP-Installation
  • Ausführen der Kommandos:
pear channel-discover pear.phpdb.org
pear install -a phpdb/propel_generator
pear install -a phpdb/propel_runtime
pear channel-discover pear.phing.info
pear install phing/phing-2.3.3 

Es ist zu beachten das explizit die Version 2.3.3 von Phing installiert werden sollte, da es ansonsten zu Fehler kommt.  

wie zum Beispiel:

[phing] Calling Buildfile build-propel.xml with target main
[phing] Error reading project file [wrapped: Unable to open build-propel.xml for reading: ]

Wenn bereits eine andere Version von Phing installiert wurde so kann diese über: pear uninstall -n phing/phing   wieder deinstalliert werden.

PHP-Ext eine PHP-Widget-Bibliothek

PHP-Ext ist eine auf Ext aufsetzente PHP-Bibliothek. Sie ermöglicht das einvache verwenden von den aus Ext bekannten Widgets. Dabei muss kein JavaScript-Code geschrieben werden, der benötigte Code wird automatisch erstellt. Momentan sind noch nicht alle Funktionen von Ext aus PHP-Ext ansprechbar, aber ich gehe davon aus dass diese bald ergänzt werden. PHP-Ext kann bei  php-ext.quimera-solutions.com heruntergeladen werden.

Besseres var_dump für PHP

Jeder der neben PHP schon einmal mit ColdFusion gearbeitet hat wird das Tag <cfdump> aus CF in PHP vermissen. Cfdump ist mir der var_dump-Funktion von PHP vergleichbar, allerdings ist die Darstellung der von PHP Welten voraus. Alle Werte die auf die Cfdump angewendet wird, werden übersichtlich in einer oder mehrere ineinander verschachtelter Tabellen ausgegeben. Dies ermöglicht einen schnellen Überblich ohne dass man sich das ganze Zwecks Einrückung wie in PHP üblich im Quelltext anschauen muss.

In PHP ist es zwar möglich var_dump mit einem vorgestellten <pre>-Tag übersichtlicher zu gestallten, dem ausgereiften Cfdump  kann es aber nicht das Wasser reichen. Das gleiche haben sich auch die Entwickler der PHP-Klasse „dBug“ gedacht. dBug baut die Darstellung von Cfdump bis ins kleinste Detail nach, so können z.B ineinander verschachtele Strukturen per JavaScript ein und ausgeklappt werden. dBug steht unter der GPL und kann unter der Adresse www.dbug.ospinto.com heruntergeladen werden.

Winbinder - Windows GUI-Anwendungen mit PHP entwickeln

Winbinder ist eine natives Windows-Binding und ermöglicht das erstellen von grafischen Windows-Anwendungen in PHP . Neben Windbinder existiert noch eine weitere PHP-Erweiterung die das verspricht, sie heißt PHP GTK und ermöglicht es grafische Anwendungen für Windows, Linux und Mac-OS zu schreiben. Ich halte aber beide Erweiterungen für noch nicht ausgereift. In Winbinder sind noch nicht alle benötigten Funktionen implementiert, die man sonst als selbstverständlich ansieht. So wird „Drag and Drop“ noch nicht vollständig unterstützt. Ein weiteres Problem ist das das Kompilieren der in PHP geschriebenen Anwendungen noch nicht richtig funktioniert, um eine nicht Kompilierte Winbinder-PHP-Anwendung auszuführen muss eine Windbinder Installation vorhanden sein. In diesem Fall werden die PHP-Files direkt interpretiert. Winbinder eignet sich meiner Ansicht nach im momentan Perfekt dafür aus vorhandenem PHP-Code kleine Windows Programme zu erstellen, allerdings muss man dabei einige Einschränkungen in kauf nehmen.