Skip to content

XBox 360 in Japan 122 Euro günstiger

In Japan kostet die XBox 360 Premium im Vergleich zu Europa 122 Euro weniger. Im Land der aufgehenden Sonne wird die Premium Version für umgerechnet 279 Euro verkauft während sie in Europa 399 Euro kostet.

Die Core Version (ohne Festplatte u.a.) wird in Japan erst gar nicht angeboten. Trotz des Preises liegt die XBox dort wie Blei im Regal weil viele Spiele nicht rechtzeitig fertig wurden, so die Analyse von heise online.

Browser-Tabs vom 14.12.2005

  • BeautifulSoup ist eine Python-Lib zum schnellen zerlegen von HTML Seiten (oder auch XML-Dateien). Das schöne daran ist das schöne darin: Auch unsaubere Seiten werden klaglos richtig geparsed.
  • Twill ist eine simple Python-Lib zum Testen von Websites. Einfache Befehle zum Navigieren, zur Cookie-Behandlung und Form-Funktionen sind implementiert.
  • JoJoThumb erzeugt Thumbnails aus vorhandenen Bildern und erstellt daraus HTML-Übersichten. Dabei ist das Teil so frei konfigurierbar und scriptbar wie kein anderes. Freeware.
  • Von USB Stick booten, kleine Einführung in Deutsch

Ruby on Rails ... oder was?

Ruby on Rails (RoR) macht in letzter Zeit immer öfter von sich reden - und wenn man sich umsieht, findet man immer mehr gutgelaunte Menschen, die jetzt wegen RoR noch viel besser gelaunt sind. Vorbei die Zeit, als man für ein neues Webprojekt 70% des Codes mal wieder schreiben mußte, obwohl man ihn in 10 anderen Projekten auch schon genutzt hat - nur in einer etwas anderen Weise, so daß ein erneutes Programmieren ähnlich oder weniger aufwendig ist als den alten Ansatz anzupassen.

Dabei macht man im Grunde genommen bei vielen Webprojekten immer wieder das gleiche. Ruby on Rails ist ein geschickt zusammengeschustertes Framework, das jede Menge Automagic beherrscht. Anstatt viele Dinge wieder einmal zu tun ist es eine Art installierbares Framework, das mit so gut wie keiner Konfiguration auskommt, nicht zuletzt auch weil es sich an das MVC Prinzip (Model-View-Controller) und auch konsequent an DRY (Don't repeat yourself) hält.

Ruby mag für Ruby-Fans eine schöne Sprache sein, aber gibt es denn vergleichbares auch für andere Sprachen?

Das Gute ist, es gibt solche Frameworks für PHP, Python und auch andere Sprachen die für die Webprogrammierung verwendet werden. Alle Frameworks machen einen mehr oder weniger guten Eindruck, aber keines davon scheint an RoR ran zu kommen.

Wer sich näher mit dem Prinzip MVC für Webanwendungen beschäftigen will ohne gleich eine neue Sprache zu lernen, dem kann ich schon mal ein paar Einstiegspunkte nennen, denn es gibt auch ganz gute Frameworks für PHP und Python:

MVC Frameworks für und in PHP:
  • CakePHP (http://cakephp.org/): Steckt noch in den Kinderschuhen, beherrscht die grundlegenden Dinge, die man für eine MVC-Implementierung braucht. Da dieses API aber noch jung ist und rasant wächst, würde ich es noch nicht produktiv einsetzen. Die Modelle müssen auch derzeit noch selbst in die Datenbank implementiert werden, die meisten RoR-Nachfolger generieren zumindest den benötigten SQL-Code dafür. Ein Vorteil von CakePHP ist, daß es auch noch mit PHP4 funktioniert.
  • PHP on Trax (http://phpontrax.com/): Vielversprechend, steckt aber auch noch tief in der Entwicklung. Eine Dokumentation ist so gut wie nicht vorhanden, jedoch kann es schon die eigenen Modelle generieren um sie in die Datenbank zu bringen. PHP on Trax benötigt zwingend PHP5 und PEAR.
  • Solar (http://www.solarphp.com/): Auch Solar befindet sich noch in der Entwicklung, erscheint aber schon recht weit fortgeschritten zu sein. Immerhin gibt es eine halbwegs brauchbare Dokumentation für den Einstieg und eine gute Dokumentation der API. Solar benötigt zwingend PHP5 und PEAR. Es läßt sich auch direkt per PEAR-Channel installieren.

MVC Frameworks für und in Python:

  • Django (http://www.djangoproject.com/): Django hat bereits zwei Jahre Entwicklung hinter sich und erscheint als stabiles, sehr gut dokumentiertes Framework das selbst Einsteigern schnelle Ergebnisse ermöglicht. Die API ist hervorragend dokumentiert. Es erzeugt selbständig aus den definierten Modellen die Datenbank. Als Entwicklungsserver beinhaltet Django einen eigenen Webserver, der im Produktivbetrieb gegen Apache mit mod_python ausgetauscht werden kann. Es integriert sich nahtlos in die vorhandene Apache-Installation. Django ist im Grunde genommen das, was man sich wünscht.
  • TurboGears (http://www.turbogears.org/): TurboGears tritt an als fast fertiges Framework, das mehrere Open-Source Programme zu einem MVC-Framework verbindet. Die Dokumentation ist gut für den Entwicklungsstand. Ein eigenes Marketing-/Howto-Video erleichtert es dem Einsteiger eine Idee zu bekommen, wie man mit dem Framework arbeitet.

Um herauszufinden, was wirklich am Hype dran ist habe ich mit Django in Python ein wenig experimentiert und war überrascht, mit welch geringem Aufwand ich schon brauchbare Ergebnisse bekam. Doch dazu bei Gelegenheit in einem Beispiel mehr...

Mein Fazit dabei ist gespalten. Einerseits freue ich mich zu sehen, daß auch die Open-Source Alternativen Innovationen bringen, die man von kommerziellen Anbietern noch nicht gesehen hat. Andererseits steckt vieles davon noch in den Anfängen und man muß sehen, wie sich die Frameworks in den nächsten Monaten entwickeln. Speziell die PHP-Frameworks scheinen alle durchweg unausgereift und leider produktiv noch nicht einsetzbar zu sein. Die Python Frameworks sind deutlich mächtiger und erwachsener, insbesondere Django, das als ernste Konkurrenz zu Ruby on Rails gesehen werden darf. Bei den meisten Webhostern dürfte zwar PHP installiert sein, aber mit Python (oder mod_python) oder Ruby dürfte die Auswahl geringer sein.

Browser-Tabs vom 6. Oktober 2005

Cobol und die moderne Welt

Zufällig liefen mir heute Daten über den Weg, die aus einem in Cobol geschriebenen und zugegeben schon etwas älteren Programm stammen. Beim auseinandernehmen der Datenstrukturen stieß ich auf einen für mich ziemlich seltsam anmutenden Datentyp: comp-3.

Stell dir vor, du hast eine gegebene zahl 1234567, die du comp-3 codiert speicherst. Du gibst also 1234567 rein und kriegst hexadezimal 0x12, 0x34, 0x56, 0x7c raus.

Der Aufbau ist an sich recht leicht: Man packt jeweils eine Ziffer in ein 4-bit nybble (also ein teil-byte) und hängt ganz am Schluß noch mal in 4 bit ein "0xC" für positiv oder ein "0xD" für negativ an. Klingt logisch, nicht? Diese Komprimierung stammt noch aus der Zeit, als Speicher wirklich kostbar war, aber mußte man ausgerechnet so speicherplatz sparen?

Zum Glück gibt's heute Internet und immer ein paar Informationen zu seltsamen Datentypen im Netz zu finden ([1], [2]).

Einen schnellen Hack in Python zum Umwandeln nach Signed Integer stell ich mal rein, vielleicht brauchts irgendwann noch mal jemand:

  1. def comp3_to_signed_int(comp3):
  2.     rnum = ""
  3.  
  4.     for nybble in comp3:
  5.         inum = str(hex(ord(nybble)))
  6.         inum = inum[2:]
  7.         inum = inum.rjust(2, "0")
  8.         rnum += inum
  9.  
  10.     if rnum.endswith("d"):
  11.         rnum = rnum[:-1] * -1
  12.     else:
  13.         rnum = rnum[:-1]
  14.  
  15.     return rnum

Browser-Tabs vom 2. Oktober 2005

Browser Tabs an sich sind ja eine wirklich feine Sache. Einen Nachteil in Verbindung mit gespeicherten Sessions (Opera oder Firefox-SessionSaver) haben sie allerdings: Sie neigen dazu, sich zu vermehren, weil man die guten Dinge gerade auf läßt um sie bei Gelegenheit mal zu lesen und zu verarbeiten (also irgendwas mit ihnen anzustellen). Bei mir haben sich nun wieder so einige Tabs angesammelt, die ich ungerne verlieren würde. Also verewige ich sie in Ablage "Blog" und kann dann, sollte ich das jemals wieder tun wollen, auch später noch mal darauf zurückgreifen. Aber zuerst befreie ich meine Tableiste...

Python 2.4.2 + bemerkenswerte Schnipsel

Python 2.4.2 wurde heute veröffentlicht. Hauptsächlich Bugfixes, trotzdem sollte es in keiner gepflegten Python-Sammlung fehlen :-). Weitere Python-Schnipsel:
  • Planet Python, eine sammlung aggregierter Python Blogs
  • Faces 0.4.0, ein Projektmanagement-Tool geschrieben und programmierbar in Python. Gantt- und Ressource Charts, Ressource-Listen und viele andere Features sind bereits integriert.
  • Mirra 0.2.5.7, ein D OpenGL Framework für Python
  • tsb - Telnet to Serial Bridge, ein Programm mit dem man einen seriellen Anschluß per Telnet im Netzwerk zur Verfügung stellen kann. Sehr schön für serielle Geräte die an entfernten Rechnern hängen, zum Beispiel bei Telefonanlagen-Gebührenerfassung per serieller Schnittstelle.

Oh, Updates!

Ich bin immer wieder glücklich, wenn ich ein update von Serendipity (dieser Weblog-Software) mache. Selten habe ich eine Software gesehen die sich so problemlos updaten läßt. Die Version 0.8.4 ist nun aktuell und eher als Security-Update zu sehen.

Vor ein paar Wochen lief das Update von Typo3 3.7 auf 3.8 (Das Content-Management auf marcogabriel.com) ähnlich glatt. Sehr schön.

wxGlade Designer für wxPython

Wie ich vor kurzem schon mal schrieb, erscheint mir wxPython als beste Lösung für mich. Nun habe ich sogar einen GUI Designer für wxPython gefunden, der das eigentliche Oberflächendesign etwas schneller macht. Noch etwas Beta sieht wxGlade jedoch vielversprechend aus und liefert sogar änderbaren Code ab. D.h. man kann seine eigenen Erweiterungen schon mal reintun und die GUI bleibt dennoch editierbar ohne daß die eigenen Erweiterungen überschrieben werden. Daneben habe ich ein GUI-Toolkit namens Venster gefunden, das leider nur unter Windows funktioniert, dort aber das beste Look&Feel aufzuweisen hat. Leider ist es so gut wie nicht dokumentiert.

tweetbackcheck cronjob