programmierung - 14.2.2008 - 17.4.2008

Sleep - Java Scripting Language - falls jemand wirklich Perl in der Java-Welt vermissen würde, könnte er sich dieses Projekt angucken. Rein aus nostalgischen Gründne verlinkt, weil ich mal ein paar Jahre auf Perl gesetzt habe.

The iPhone SDK and free software: not a match - ein Grund, warum GPLv3 gut ist, egal was manche (durchaus ansonsten recht populären) Knalltüten sagen. Denn genau das Problem - die effektive Blockade von Open Source durch Codesigning - wird durch die GPLv3 adressiert.

Amazon Web Services Blog: Storage Space, The Final Frontier - es wird interessanter. Amazon will zu EC2 persistenten Plattenplatz (wieder bezahlt nach Nutzung) zufügen.

CHDK in Brief - es beginnt. Hacks für Canon Kompakt Kameras. Klingt durchaus interessant, nicht nur Spielerei. Meiner Meinung nach sollten Kamera-Hersteller sowas ja von vornherein einfach vorsehen, es ist einfach der nächste logische Schritt. Aber vermutlich gucken die zu sehr auf "Produktgestaltung" durch willkürliches Weglassen von Features (wie z.B. bei RAW-Speicherung gerne gemacht)

Neuester Fortschritt in der Künstlichen Intelligenz: Computer gewinnt ein Spiel gegen einen Go-Meister - "Während des Go-Turniers in Paris, das vom 22. bis 24. März 2008 von der Französischen Go-Föderation (FFG) ausgetragen wurde, gewann der MoGo-Künstliche-Intelligenz-Engine (IA), entwickelt vom INRIA - dem Französischen Nationalinstitut für Forschung in Informatik und Automatisierung - der auf einem Bull NovaScale-Supercomputer läuft, ein 9x9-Go-Spiel gegen den professionellen 5. DAN Catalin Taranu. Dies war der erste offiziell genehmigte 'Non-Blitz'-Sieg einer 'Maschine' über einen Go-Meister."

SeasideXUL - interessantes Projekt, das aus Seaside (dem Smalltalk Webapp Server) direkt XUL Interfaces erzeugt und darüber die Erstellung von Anwendungen mit nativem Interface erlaubt. Sehr interessant, da hier eine Webserver-Technik für lokale Anwendungen Einsatz findet (und ja, das klingt verdammt ähnlich zu AIR, nur mit Smalltalk und XUL statt Javascript/Actionscript und HTML/Flash)

Digging into Factor’s compiler - sehr nette Übersicht über die Arbeitsweise des Factor compilers. Factor macht mir immer mehr Spaß, ich glaub damit werd ich ein bischen mehr rumspielen.

GitHub - "Secure Git hosting and collaborative development". Sieht ganz nett aus und git ist neben Mercurial eine der interessanteren neuen Versionsverwaltungen.

Google App Engine for developers - netter Überblick über die Features und die Macher hinter der App Engine.

Google App Engine - wow. Google bietet gehostete Anwendungen auf Python-Basis und liefert ein Django vorinstalliert schon mit. Genial. Allerdings ist Djang arg verkrüppelt, da der ganze Modell-Teil nicht benutzt werden kann (eine SQL-Datenbank gibts nicht, sondern nur den Google Datastore). Hmm. Vielleicht mal ne Idee einfach mal was neues zu machen mit meinem Blog. Läuft ja schon lange verlässlich, wird Zeit das mal wieder zu zerstören ...

Pydev - Eclipse-Plugin für Python-Entwicklung. Da ich mir Eclipse für andere Sachen auch schon mal angucke und es nicht mehr grausam lahm ist, könnte das hier eventuell auch mal interessant werden. Obwohl TextWrangler immer noch unschlagbar schnell im Vergleich ist.

Pydev Extensions - shareware-Erweiterung des Eclipse Plugins für Python. Hat einige interessante Features.

Towers of Hanoi - geschrieben nur mit VIM kommandos (ja, wenn man VIM Kommandos in einen Buffer pastet und diesen dann wieder ausführt, erhält man sowas wie eine - sehr seltsame - Programmiersprache, basierend auf visueller Veränderung von Texten. Und ja, irgendwer hatte da zu viel Freizeit)

Norwegen versucht, ISO-Entscheidung zu Open XML zu revidieren - "Berichte über den Abstimmungsprozess tauchten am Freitag bei Computerworld Norge auf. In einer Übersetzung des Artikels bei Groklaw sagten Teilnehmer, dass Vertreter von Microsoft und Statoilhydro im Standards-Norge-Ausschuss für die Zustimmung zu Open XML gestimmt hätten. Die anderen Mitglieder des Ausschusses waren jedoch dagegen, da ihre Kommentare zur Spezifikation nicht berücksichtigt wurden. Dennoch änderte sich die Gesamtabstimmung von Nein zu Ja."

OOXML: Warten auf die ISO-Entscheidung - sollte der Müllhaufen von Microsoft (sorry, ein "Standard" mit tausenden Seiten Erläuterungen und tausenden von kritischen Anmerkungen und Korrekturen und Widerkorrekturen ist einfach nur ein Müllhaufen) tatsächlich im "Fast Track" Verfahren zum Standard werden, hätte sich damit das gesamte ISO-Verfahren komplett lächerlich gemacht und es wäre an der Zeit, eine funktionierende Alternative für diese Farce zu finden. Wenn technische Standards nur noch auf der Basis von politischen Ränkespielchen und wirtschaftlichen Machtinteressen entschieden werden und sowas dann noch in einer Weise, die klar und eindeutig die aufgestellten Reglementarien der ISO ignorieren ("Fast Track" ist nicht für Standards gedacht, die einen hohen Diskussionsbedarf haben), dann ist ISO schlicht und einfach wertlos.

Python processing - das threading API auf fork-Prozessen aufgebaut. Sehr interessasnt, weil man damit eine bessere Nutzung von Multi-Core Systemen erhält (da Prozesse - anders als Threads - nicht unter dem global interpreter lock leiden). Allerdings kauft man sich das natürlich mit dem Overhead von Systemprozessen ein. Könnte trotzdem sehr interessant für z.B. TooFPy sein.

cusp - ich bin ja kein grosser Fan von Eclipse (es frisst einfach mehr Resourcen als ich einer IDE zubillige), aber das hier ist schon ganz nett. Und zwar eine IDE für Lisp, die auf den üblichen Integrations-Tools aufsetzt und so eine interaktive Lisp-Umgebung aufbaut - aber eben mit den typischen Eclipse-Features für den Editor und die Sourcenavigation. Sieht gut aus. Und scheinbar gibts auch einen einfachen Installer (der gleich das passende SBCL mitliefert) der auch OS X unterstützt. Vielleicht sollte ich doch mal wieder Eclipse runterladen ...

DIN sagt "Ja" zur ISO-Standardisierung von OOXML - und wenn man sich dann durchliest, dass z.B. nur "Ja" und "Enthaltung" zur Wahl standen, dann ist ja wohl klar wer das ganze gut geschmiert und finanziert hat. Was für eine Blamage für eine Einrichtung, die auf sich selber so grosse Stücke hält.

LispWithCusp - falls sich jemand wundert, warum ich mich für Eclipse und Lisp in Kombination überhaupt erwärmen kann. Ja, das ganze sieht schon verdammt gut aus. Erinnert mich ein bischen an die Apple Dylan Umgebung. Irgendwann werden die aktuellen IDEs mal an die Mächtigkeit der alten Tools rankommen. Cusp sieht da schon wirklich brauchbar aus.

TDD Proven Effective! Or is it? - ein Studie über die Effizienz von test-driven-Development wird hier zerlegt und auf ihre eigentlichen Inhalte und statistischen Aussagen untersucht. Das Ergebnis ist dann doch weniger positiv für TDD ...

SAP ist Müll - den selbst eine Müllfirma nicht haben will ...

MCL 5.2 has been released as open source - leider wohl nicht unter Rosetta lauffähig, also nichts für Intel-Mac-Benutzer (was so ziemlich jeden ausschliesst, der was modernes von Apple hat). Tja, die Herstellerfirma ist wohl damit mehr oder weniger Geschichte, aber vielleicht gibts ja bald eine Version, die mit Rosetta klar kommt - oder jemand portiert das OpenMCL Compiler Backend in diese Version.

Banken und das Web

Wenn man armselig ganz neu definieren will, muss man sich mal die Banken und deren Web-Nutzung angucken. Hat eigentlich irgendeiner der Programmierer an dem Müllhaufen der einem da hingepackt wird irgendeine minimale Ausbildung erhalten? Mein letzter "Spaß": der praktische, weil low-tech TAN-Bogen wird gekündigt. Gibt nur noch Smart-TAN über Codekarten und so blöde Geräte. Ok, sollte ja eigentlich tun - Session-Passwörter generieren ist ja nicht unbedingt was neues. Aber natürlich klappt auch das nicht. Wozu auch. Wäre ja albern. Ich mein, mal ehrlich, hat jemand was anderes erwartet? Und natürlich ist jetzt die TAN-Nutzung bei mir gesperrt. Weil, ist ja so doll sicher wenn man eine Technik installiert, die nicht funktioniert, und dann die Leute zwangsgesperrt werden.

Aber das ist nicht der Grund, der mich so nervt. Der Grund? Das Mitteilungsformular der Bank. Ein einfaches Formular mit Textfeld im Browser. Soweit so gut. Da gibt man Text ein, der geht direkt an den Kundenberater. Auch gut. Ich mein, mehr will ich garnicht - Text schreiben und gut ist. Und was passiert? Ich bekomme die tolle Meldung:

Der Text ist zu lang. Der Text darf nur 11 Zeilen mit jeweils 36 Zeichen enthalten.

Bitte was? Hallo? Schon mal ein Textfeld in einem Webbrowser gesehen? Gibts da irgendwo ein Spaltenlineal? Oder schon mal was von Fließtext gehört? Soll ich jetzt allen Ernstes meine Zeilen fest von Hand nach maximal 36 Zeichen (die ich abzählen muss, da mir das Eingabefeld keinerlei Hilfe gibt) umbrechen? Habt ihr sie noch alle im Rechenzentrum?

Oh, und danach, nachdem ich formatiert und gezählt hab (mit Editor-Unterstützung und cut-and-paste):

Dieser Text enthält ungültige Zeichen. Er darf nur Ziffern, Buchstaben, Umlaute und eine willkürliche und von Unwissen bei der Auswahl geprägte Auswahl von Sonderzeichen enthalten.

Klammern - die man vielleicht ja mal benutzt, wenn man eine Anmerkung mit einbaut - nene, die sind böse und dürfen nicht verwendet werden.

Sorry, aber das ist eine totale Pleite. Und nein, ich will jetzt garnichts davon hören, dass euer nachgelagertes Bankensystem nur 11 Zeilen a 36 Zeichen akzeptiert - mir als Kunde ist das scheissegal. Das als Grund anzugeben zeigt nur, wie dämlich ihr seid und wie wenig Ahnung von der Materie ihr habt. Sorry, Kollegen, aber das ist armselig.

Panda3d full featured open source python 3d engine - hmm. Leider nur Installer für Linux und Windows. Ob das wohl mit OS X läuft? Vielleicht sogar in Nodebox einbettbar ist?

Ur-Scheme: A GPL self-hosting compiler from a subset of R5RS Scheme to fast Linux x86 asm - ich mag ja solche Projekte, egal wie sinnlos sie sein mögen.

Building a Codeless Language Module with BBEdit 8.5 and (Ir-) Regular Expressions - interessant, weil damit die komplexseren Features von Perl Compatible Regular Expressions gezeigt werden. Könnte hilfreich sein für eigene Language-Modules die ich brauchen könnte.

NodeBox | Superfolia - wow. Einfach nur wow. Ich muss mich wirklich mehr mit Nodebox beschäftigen und das nicht immer nur als praktischen Desktop-Calculator benutzen.

Warum ist 37signals so arrogant? - "Nun, ich habe 37signals immer bewundert. Schöne Website, intelligente Artikel. Aber ich habe ihre Produkte ausprobiert und obwohl sie bewundernswerte Qualitäten haben, haben sie meine Bedürfnisse nie ganz erfüllt: Nahe dran ist nicht gut genug. Nach dem Lesen des Artikels verstehe ich warum: Die Entwickler sind arrogant und völlig unsympathisch gegenüber den Menschen, die ihre Produkte nutzen."

iPhone Developer Program Details - es wird spannend. Ab Sommer dann die ersten Tools. Und die Freeware-Programmierer kommen relativ günstig rein ins Developer-Programm und können auch die iTunes Store Plattform nutzen für die Distribution.

Seaside development with GNU Smalltalk - sehr schön. GNU Smalltalk ist einfach eine der besseren Batch-Smalltalk Varianten. Die anderen sind einfach nur vom GUI befreite Images, GNU Smalltalk ist von vornherein weitaus besser auf Textmode ausgerichtet. Und für einen dynamischen Webserver ist das eben die bessere Umgebung. Kombiniert mit den recht mächtigen Web-basierten Tools von Seaside könnte das auf Dauer eine richtig nette Umgebung werden.

Materialized Views in PostgreSQL - interessante Alternative zu Denormalisierung (bzw. eine Technik zu organisierter Denormalisierung, die das relationale Modell nicht allzusehr mit Füssen tritt, da die logische Sicht weiterhin die saubere normalisierte Form ist, aber automatisch performance-optimierte Denormalisierungen stattfinden)

Programming Nu - hatte ich das schon? Ist sowas wie F-Script, nur mit Lisp-angelehnter Syntax anstelle Smalltak-angelehnter Syntax.

PyGUI - normalerweise bin ich ja ein wxPython Programmierer, aber man soll ja immer mal über den Tellerrand schauen. Und der Tellerrand hier sieht ganz brauchbar aus, auf den ersten Blick.

Changes - grafischer Diff und Merge. Sieht sehr nett aus und kann in diverse Tools und Versionsverwaltungen integriert werden. Könnte als Alternative zum eher spröden XCode FileMerge brauchbar sein. Geht auch über SFTP auf remote Server. Und die Script-Sprache ist F-Script, wie cool ist das denn? Leider erst ab Leopard lauffähig.

vi & TextMate together at last - tja. vi Bedienung für Textmate. Was ich allerdings generell bei all diesen Projekten (auch denen für Emacs) gelernt habe: nichts ist wie vi, ausser vi (ok, ich bevorzuge natürlich vim, soviel Komfort muss schon sein). Und erschreckenderweise ist vi immer noch einer der für mich am einfachsten zu bedienenden Editoren ...

ANT (ant is not TeX) - interessanter Ansatz das Thema Textlayout neu anzugehen. Syntax sehr ähnlich zu TeX, aber andere Innereien und einige nette Features.

FSClass 3.0 - erlaubt die Erweiterung von Objective-C Klassen und die Neuerstellung von Klasse in F-Script, ohne direkt auf Objective-C zurückgreifen zu müssen. Wenn da noch einer einen anständigen Classbrowser drumherum bauen würde, mit dem man die Methoden interaktiv erstellen kann, anstelle über Files gehen zu müssen, dann wär OSX fast schon sowas wie ein Smalltalk-System.

Learn F-Script in 20 Minutes...and Have Fun Playing with Core Image - nettes Tutorial für F-Script. Anhand von Image-Spielereien interaktiv die OSX API erforschen.

Mathomatic - kleines Kommandozeilenprogramm zur symbolischen Manipulation von Gleichungen. Sehr praktisch, man kann mit wenigen Zeichen mal eben eine Gleichung nach verschiedenen Variablen auflösen lassen - gut gerade für die Everyday-Mathematik.

Rope, a python refactoring library ... - nicht detailliert angeguckt, aber mal aufgehoben für später. Könnte durchaus interessant werden.

Django snippets: MintCache - interessante Idee um den "Dogpile-Effect" zu vermeiden: wenn die Regenerierung von Daten länger dauert, als neue Requests kommen, stapeln sich die Requests die eine Regenerierung von alten Daten anstossen, und dadurch wird die Generierungszeit noch länger. Diese Cache-Idee stösst beim ersten Zugriff auf veraltete Daten die Regenerierung an, liefert allen anderen aber einfach die bisherigen alten Daten aus, und vermeidet so die mehrfache Neugenerierung und den damit verbundenen nervigen Lasteffekt.

Erlware - der Start eines Paket-Repositories für Erlang. Könnte sehr interessant werden - ich kenne es von Perls CPAN und Pythons cheeseshop, die beide eine Menge Erleichterung bei der Nutzung von verfügbaren Modulen bieten.

memcachedb - interessantes Projekt. Eine Implementierung des memcached server protokolls, allerdings werden die Key/Value Paare nicht im Speicher gehalten, sondern in einer BerkleyDB Datenbank. Dadurch ist es natürlich nicht so schnell wie memcached, aber persistent über Prozessläufe. Dadurch, dass viele Sprachen memcached bindings haben, eine nette low-level Datenbank für die typischen Key/Value Situationen - könnte z.B. mit einem kleinen HTTP REST Frontend interessant für die Nutzung aus LSL heraus sein.

AquaCurry - auch wenn ich selber Haskell und seinen Verwandten wohl den Rücken gekehrt habe, so ganz kann ich nicht davon lassen. Curry ist ein weiterer Vertreter aus dem weiten Feld der funktionalen Sprache, allerdings eine die gleichzeitig auch im Bereich der Logik-basierten Sprachen vertreten ist (also dem Bereich, in dem häufig Prolog und Verwandte zu finden sind). Und es gibt eine GUI-Umgebung für den Mac. Ausserdem läuft das Projekt an der Uni Münster, und das Teil heisst Münster Curry Compiler. Da muss ich natürlich reingucken.

djapian - Django und Xapian integrieren, um darüber eine Volltextsuche über Datenbankmodelle zu erlauben. Klingt nett - hätte mir einen Haufen Arbeit bei der Erstellung meiner eigenen Blogsoftware erspart.

Thousand Parsec - turn-based space exploration games in python. Klingt ein bischen wie zeitgerastertes Eve Online ohne Grafik. Open Source auf WxPython.

Command line Haskell and error handling examples - wer wissen will, warum ich irgendwann entschieden habe das Haskell eine bescheuerte Sprache ist, den Link angucken. EIne Sprache, bei der ein so banales Problem wie das Summieren von Zahlen in einer Datei dermaßen extreme Veränderungen durchmacht, nur weil man Fehlerbehandlung zufügt, mag Mathematiker und Informatiker begeistern, ist aber schlichtweg unproduktiv. Und ja, ich weiss das grosse Projekte mit Haskell erfolgreich sind und die Programmierer davon begeistert sind (pugs und darcs fallen mir spontan ein). Ändert nichts an meinem Urteil über Haskell.

Become a Mac OS X Services Ninja - wie man Dienste/Services (also diese integrierten Editor-Erweiterungen in OS X) mit F-Script bauen kann. Sieht echt interessant aus - ich sollte mich doch noch mal wieder mit F-Script beschäftigen, zumal ich eh mal wieder eine Smalltalk-Phase habe.

Atomic Commit In SQLite - sehr interessante Dokumentation über Schreibzugriffe in SQLite, durchaus auch für eigene Projekte bedenkenswert, wo es auf stabiles Schreiben ankommt.