programmierung - 6.9.2010 - 14.11.2010

atomo - sehr interessante Sprache, sehr flexibel und kompakt. Bin drüber gestolpert weil jemand dazu einen Mongrel2 Adapter gebaut hat. Interessant an atomo ist für mich vor allem, dass es mal wieder eine neue Sprache mit Prototyping basierender Objektorientierung ist. Eine Sache die viel zu selten ausprobiert wird (andere Sprachen aus dem Bereich sind Slate, Self, Io, Newtonscript und JavaScript).

Interessant ebenfalls: atomo ist in Haskell eingebettet und bietet daher eine dynamische Scripting-Sprache für Haskell-Umgebungen und natürlich eine gute Integration in die Haskell Welt. Sowas gabs schon mal mit einem der ersten Perl6 Prototypen, der ja auch in Haskell gebaut wurden (Pugs).

Kilim - beim Stöbern in den Orc Dokumentationen drüber gestolpert, eine microthread-Lib für Java.

Orc Language - bisher nichts davon gelesen, aber sieht recht interessant aus. Kern ist Cor, eine funktionale Sprache ohne Seiteneffekte und darauf aufbauend dann Orc, die zur Orchestrierung von Services in verteilten Systemen dient. Das ganze in einer recht ansprechenden, kompakten Syntax auf der JVM. Könnte man sich durchaus mal als Alternative zu Scala und Clojure angucken, Java wird dabei als externer Service integriert, dadurch können recht einfach verteilte Systeme gebaut werden, bei denen Teile eben in Java implementiert sind. Erinnert in vielen Punkten stark an die Ideen von Erlang (generell von einem verteilten System ausgehen, aber trotzdem Teile lokal aus Performancegründen halten), wobei ich die Syntax deutlich angenehmer finde. Und mit der JVM eine deutlich weiter verbreitete VM als bei Erlangs BEAM.

Twisted Orchestration Language in Launchpad - und jemand hat die Orc-Kombinatoren nach Python portiert, unter Benutzung von Twisted. Allerdings finde ich persönlich Twisted eher eklig zu programmieren, aber wers mag ...

Tornado Web Server Documentation - muss mir doch mal Tornado näher angucken. Hab jetzt für ein Nebenprojekt einen Webservice mit web.py gebaut, was erschreckend simpel (und schmutzig) ging. Tornado baut auf einem sehr ähnlichen Konzept auf, schmeisst Django-ähnliche Templates in den Mix und bietet gleich noch einen guten asynchronen Server und Unterstützung für asynchrone sockets und http requests. Könnte gerade für Webservices eine gute Alternative sein, die wenig Resourcen braucht.

Oracle cooks up free and premium JVMs - und Oracle beginnt mit dem Versuch des Cash-in auf Java. Wenn es klappt, könnte Java bald in ähnlicher Situation wie .NET sein: die freien Implementierungen hängen hinter dem Umfang der kommerziellen hinterher. Was das für alternative Sprachen auf der JVM bedeutet, muss sich erst zeigen - aber sicherlich wird es für einige Probleme sorgen. Allerdings ist die JVM-Welt groß genug und mit genügend Alternativen ausgestattet, und Oracle ist nicht Microsoft. Von daher könnte das ganze auch bloß wieder ein Sturm im Wasserglas sein und allenfalls die typischen Oracle-Opfer betreffen.

Eventlet Networking Library - muss ich mir mal näher angucken, das monkey-Patching von Standardbibliotheken um diese trivial in einer asynchronen Umgebung zu nutzen sieht sehr interessant aus.

Links

rfc1437 | Content-type: matter-transport/sentient-life-form - Tendenzen stark in Richtung "wegschmeissen mit Archiv und neu anfangen" mit leichten Optionen zu "wegschmeissen, statisches Archiv und vielleicht einen Teil in die neue Plattform schaufeln wenn ich Zeit finde". Der Link zeigt wo ich im Moment rumspiele. Wordpress mit ein paar kleinen Plugins und einer nginx caching Front.

Bitrot

Hat mich jetzt auch voll erwischt. Meine alte Blog-Software wird wohl nicht unverändert überleben können. Alte Python-Version (2.3), altes (sehr altes) Django (0.91), alter PsycoPG Treiber (1.0), altes PostgreSQL (7.4) und das alles auf einer alten Debian (eine wilde Mischung verschiedenster Versionen mit Backports und eigenen Programmen und mehreren gescheiterten Upgrade-Versuchen). Argh.

Tja, ich schwanke noch zwischen "umprogrammieren" und "wegschmeißen". Letzteres hätte den Charme, dass ich den ganzen Müll nicht mehr mit mir rumschleppe. Und ehrlich, so viel interessantes hat sich auf meinem Blog eh nie abgespielt. Vielleicht kann ich ja vorher einen wget Mirror anlegen und mir den ganzen Kram irgendwo statisch hinkippen, so als Archiv.

Neuschreiben hat natürlich auch eine Menge Charme, aber die tausenden von alten Einträgen (über 4000 Artikel und über 4000 Links, dazu fast 200 Bilder) aus 8 Jahren (erster Eintrag am 3.11.2002) bloggen zu konvertieren klingt nicht wie Spaß. Und vermutlich sind tausende der Links eh völlig veraltet und hinfällig.

Keine Ahnung was ich mache, vielleicht versuch ich erstmal die Metaeule auf die neue Kiste zu bringen, da hab ich ja "nur" das Problem, dass es PHP4 nicht mehr im Ubuntu Repository für die 10.04 gibt und ich daher die Eule zwangsweise auf PHP5 bringen muss (und das mit Code der auf Wordpress 1.5 aufbaut - ich muss wirklich bekloppt sein).

Oder ich versuch die Installation einer gammelalten Debian mit den damals eingesetzten Paketen - die Kiste läuft eh nicht in der Front, sondern hinter anderen Maschinen, das Hack-Risiko ist an der Stelle ja dann doch eher gering. Die Metaeule hat natürlich auch ein paar Tausend Beiträge im Archiv (nur 8291, ist ja fast nix), aber wenn ich die alte Software weiter am Laufen halten kann (Security-Patches sind da einige im Laufe der Zeit reingelaufen, von daher kann die eigentlich ruhig weiter vor sich hin wurschteln), bräuchte ich die ja nicht zwingend anpacken.

Irgendwie war das mit dem Internet auch so eine richtig blöde Idee ...

Twisted Orchestration Language in Launchpad - und jemand hat die Orc-Kombinatoren nach Python portiert, unter Benutzung von Twisted. Allerdings finde ich persönlich Twisted eher eklig zu programmieren, aber wers mag ...

Kilim - beim Stöbern in den Orc Dokumentationen drüber gestolpert, eine microthread-Lib für Java.

Orc Language - bisher nichts davon gelesen, aber sieht recht interessant aus. Kern ist Cor, eine funktionale Sprache ohne Seiteneffekte und darauf aufbauend dann Orc, die zur Orchestrierung von Services in verteilten Systemen dient. Das ganze in einer recht ansprechenden, kompakten Syntax auf der JVM. Könnte man sich durchaus mal als Alternative zu Scala und Clojure angucken, Java wird dabei als externer Service integriert, dadurch können recht einfach verteilte Systeme gebaut werden, bei denen Teile eben in Java implementiert sind. Erinnert in vielen Punkten stark an die Ideen von Erlang (generell von einem verteilten System ausgehen, aber trotzdem Teile lokal aus Performancegründen halten), wobei ich die Syntax deutlich angenehmer finde. Und mit der JVM eine deutlich weiter verbreitete VM als bei Erlangs BEAM.

Interactive Fabrication » Beautiful Modeler - wow, das ist ausgesprochen cool.

Tornado Web Server Documentation - muss mir doch mal Tornado näher angucken. Hab jetzt für ein Nebenprojekt einen Webservice mit web.py gebaut, was erschreckend simpel (und schmutzig) ging. Tornado baut auf einem sehr ähnlichen Konzept auf, schmeisst Django-ähnliche Templates in den Mix und bietet gleich noch einen guten asynchronen Server und Unterstützung für asynchrone sockets und http requests. Könnte gerade für Webservices eine gute Alternative sein, die wenig Resourcen braucht.

Fat Cat Software - iPhoto Library Manager - da ich so blöd war ein Photobuch auf einem anderen Mac als üblich zu machen (naja, der übliche war halt ständig belegt), muss ich mir jetzt wohl das hier mal angucken um zu schauen ob ich meine Bücher zusammenmergen kann auf eine einzelne Maschine. Schon blöd, dass Apple bei iPhoto keinerlei Merge-Funktion anbietet. Gerade mit einem Notebook und einem Desktop hat man ja doch recht schnell getrennte Libraries. Würde Lightroom Bücherdruck unterstützen wär ich ja eh schon längst weg von iPhoto. Alles irgendwie nicht so ganz befriedigend.

The V4Z80P – A Z80 Based Laptop @ Retroleum - da baut einer nicht nur seinen eigenen Computer mit eigenem System, es ist auch noch gleich ein Laptop. Oder sowas ähnliches jedenfalls.

Oracle cooks up free and premium JVMs - und Oracle beginnt mit dem Versuch des Cash-in auf Java. Wenn es klappt, könnte Java bald in ähnlicher Situation wie .NET sein: die freien Implementierungen hängen hinter dem Umfang der kommerziellen hinterher. Was das für alternative Sprachen auf der JVM bedeutet, muss sich erst zeigen - aber sicherlich wird es für einige Probleme sorgen. Allerdings ist die JVM-Welt groß genug und mit genügend Alternativen ausgestattet, und Oracle ist nicht Microsoft. Von daher könnte das ganze auch bloß wieder ein Sturm im Wasserglas sein und allenfalls die typischen Oracle-Opfer betreffen.

Kunsthalle Bielefeld: Der Westfälische Expressionismus - ich glaub ich hab tatsächlich mal einen Grund nach Bielefeld zu fahren.

Mediathek für Mac OS X - muss ich mir mal angucken. Schliesslich ist ja die Archivierung dank dämlicher Privatsenderhansel (und Politikern, die sich zu deren Erfüllungsgehilfen gemacht haben) heutzutage Sache der Zuschauer.

Panasonic DMC-GF2 Preview: 1. Introduction: Digital Photography Review - ich hasse dich, Panasonic. Jetzt will ich das niedliche kleine GF2+14mm Kit haben. Menno. Erst Apple mit dem MacBook Air und jetzt Panasonic, alle wollen nur mein Geld.

Eventlet Networking Library - muss ich mir mal näher angucken, das monkey-Patching von Standardbibliotheken um diese trivial in einer asynchronen Umgebung zu nutzen sieht sehr interessant aus.

don’t look » columnManager - interessantes jQuery Plugin welches effizientes Spalten ein/ausblenden für Tabellen ermöglicht. Wenn man das mit dem DataTable Plugin verheiraten könnte, wäre es eine sehr praktische Sache.

John Resig - Simple JavaScript Inheritance - sehr nettes Pattern mit dem man Klassenbasierte Vererbung mit JavaScript simulieren kann (für die Situationen, wo diese Struktur mehr Sinn macht als das normale Prototypensystem von JavaScript).

jQuery column cell selector - bramstein.com - noch ein jQuery Plugin, dieses liefert einen praktischen Pseudo-Selektor für Spalten in einer Tabelle um dann mit JavaScript dort Änderungen vorzunehmen.

Inform 7 - mitlerweile ist Inform in eine englisch-ähnliche Sprache zur Erstellung von interaktiver Fiktion geworden. Und hat eine GUI für den Mac bekommen mit dem man die diversen Story-Wege analysieren und testen kann. Irgendwie schon beeindruckend, was da alles entstanden ist, nur für Textadventures.

Coffee on the Keyboard » Bleach, HTML sanitizer and auto-linker - Library von Mozilla die white-list basiertes HTML Cleaning anbietet. Die Mozilla-Leute wissen meistens was sie tun, von daher könnte diese Bibliothek tatsächlich brauchbar sein.

robhudson's django-debug-toolbar at master - GitHub - ok, dieses Werkzeug ist ganz offiziell hugo-approved. Schlichtweg genial, liefert genau die richtige Menge an Informationen für Django-Entwicklung und beisst sich nicht mit vorhandenen Layouts (jedenfalls bei mir hats bei Experimenten gut geklappt).

postgres 9 streaming replication and django balancer - Santana läuft zwar noch nicht mit Django 1.2, aber der Balancer für Datenbankzugriffe kombiniert mit PostgreSQL Replikation klingt nach einer netten Methode um Django-Systeme hochzuskalieren wenn die normalen Mittel mit einer Datenbank nicht mehr ausreichen. Muss mir vielleicht mal eine Spielinstallation anlegen.

Fuzzy Mathematics with FuzzPy (Part 1) | Mad Python - wenn es nicht nur um unscharfe Zahlen oder Fehlerpropagation geht, sonder auch unscharfe Mengen oder Graphen von Interesse sind, könnte dieses Modul weiterhelfen.

buckingham - Project Hosting on Google Code - interessantes Projekt das nicht nur Fehlerpropagation bei Berechnungen mitführt (hatten wir ja schon mal vor kurzem), sondern auch Einheiten berücksichtigen kann und Konvertierung zwischen Einheiten beherrscht.

Building iPhone Apps with HTML, CSS, and JavaScript - hatte ich das schon? Egal. jqTouch zur Erstellung von iPhone-Web-Anwendungen. Da ich da gerade in der Firma mit rumspiele, mal geblogmarkt.

PhoneGap - wenn die Site mal da ist, soll da eine Anwendung zur Wandlung einer Web-Anwendung in eine native Anwendung (mit erweitertem Zugriff zu native Features des iPhone oder anderer Devices) sein. Mal vorgemerkt.

jacksonh's manos at master - GitHub - Web-Framework für C# das auch mit Mono läuft. Ja, ich weiss, C# - aber ich brauchs halt eh für die Firma und dann könnte ich mir ja auch genausogut sowas mal angucken.

kramdown - nette Markdown Implementation für Ruby, die parallel HTML und PDF (über LaTeX) produzieren kann und daher für Sites interessant sein kann, die Inhalte auch als Download verfügbar machen wollen.

Andrew de Quincey's livejournal - nicht nur iPads sind interessant zu jailbreaken, sonder auch bookreader wie der Kindle (der ja eine recht interessante Hardware hat)

Camelot - See it - eigentlich naheliegend: man nehme Python und einen ORM (hier SQLAlchemy) und mache daraus eine 4G Sprache zur Datenbankprogrammierung mit QT als Grafikoberfläche. Das ganze hier als GPL Projekt für das man auch kommerzielle Lizenzen bekommen kann, wenn man kommerzielle Programme damit erstellen will.

uncertainties Python package v1.7.0 documentation - sehr interessantes Modul für Python mit dem man Floats mit Unsicherheiten in Funktionen benutzen kann. Besonders interessant für die Situationen wo man die Fehlerpropagation in Berechnungen mitverfolgen muss (z.B. Planzahlen oder Messdaten).

santhoshtr's pypdflib at master - GitHub - könnte ich vielleicht mal brauchen, speziell da ein Sample dabei ist mit dem eingeschränktes HTML nach PDF gerendert wird.

Filtering Dropdown Lists in the Django Admin — Stereoplex - weil es immer wieder gebraucht wird und weil hier einige gute Wege beschrieben sind.

arskom's soaplib at 1_0 - GitHub - und noch eine SOAP Library. Diese kann die Services als WSGI-Applikationen bereitstellen, dadurch kann ich eigentlich das ganze Serverhandling vom Toolserver wegwerfen und durch normale WSGI-Server wie Apache mod_wsgi oder FLUP ersetzen.

pysimplesoap - Project Hosting on Google Code - da ich immer noch so ein Arbeitsprojekt offen habe meinen Toolserver zu modernisieren, das hier könnte da in Frage kommen für die Ablösung des doch arg veralteten (und seit Jahren buggy) SOAPpy.

Using the ElementTree Module to Generate SOAP Messages - und noch eine SOAP Library, diese baut auf dem netten ElementTree Parser auf. Und ist vom effbot gebaut, das lässt auch einiges erhoffen (der kann XML).

dcramer's django-sentry at master - GitHub - leider nur Django 1.2 (mein eigenes internes Framework das auf Django aufbaut ist leider derzeit nicht mit 1.2 kompatibel), aber sehr interessant um Fehlermeldungen aus Django in der Datenbank zu sammeln zwecks späterer Auswertung. Natürlich kann man auch die Fehler sich als Mail schicken lassen, das geht schon mit Bordmitteln, aber gerade wenn mehrere Leute ein System betreuen kann die Speicherung in der Datenbank deutlich bequemer sein.

Wo ich schon überall war - einfach weil ich mal mit Google Maps API spielen wollte. Grün war ich schon, Rot war ich auch und fand ich toll, gelb ist geplant.

gcv's appengine-magic at master - GitHub - soll interaktive Entwicklung von Google AppEngine Tools ermöglichen.

jduey's arrows at master - GitHub - mal beobachten, Lisp (und damit Clojure) liegt mir normalerweise wesentlich näher als Programmiersprache als Haskell und vielleicht verstehe ich dann ja mal endlich richtig was es mit diesen Arrows auf sich hat.

ninjudd's cake at master - GitHub - ob ich mir das mal angucken will? Gerade wegen der persistenten JVM bei Nutzung von Scripten könnte das interessant sein.

Kojo Home - eine Umgebung ala Processing mit Scala als Scriptsprache. Sehr interessant, weil es wie Processing auf mehreren Plattformen läuft, schnell visuelle Ergebnisse liefert aber nicht auf Java aufbaut, sondern auf einer modernen Multiparadigmensprache. Ausserdem bietet es gleich vom Start weg eine kleine Schildkröte wie in Logo an. Schildkröten sind cool.

README - copperhead - Project Hosting on Google Code - interessante Idee, mit Dekoratoren und Introspection in Python eine embedded Language für die Programmierung auf der GPU zu bauen. Oder um es verständlicher zu sagen: Python-Code (eingeschränkter Sprachumfang) in GPU Maschinensprache umsetzen.

codepad - praktisch wenn man im chat über Code diskutiert, da der Code nicht nur angezeigt wird, sonder auch ausgeführt. Also speziell für Algorithmen interessant wo man die Daten im Code mitliefern kann.

Free Pascal - Advanced open source Pascal compiler for Pascal and Object Pascal - Home Page - Blast from the Past. Das neue 2.4 von Free Pascal unterstützt OSX/Arm als Target. Ja, damit soll man iPhone-Applikationen programmieren können - und mit der Aufhebung der Werkzeugrestriktionen durch Apple könnte das ja fast sogar realistisch sein (wobei ich nicht weiss wie gut die Integration mit Cocoa ist). Allerdings bin ich mir nicht so wirklich sicher dass ich mir nach all den Jahren wieder Pascal antun wollen würde.

home | Disco Project - gestern hatte ich schon mincemeat, disco ist ähnlich aber ausgebauter wenn das einfache Modell von mincemeat mal nicht reicht.

Lazarus Snapshots - nur der Vollständigkeit halber: es gibt auch eine GUI-IDE ala Delphi für Free Pascal, und die tuts wohl laut der Liste der Snapshots auch auf OSX (also dem Mac, nicht dem iPhone). Wer mit Pascal rumspielen will kann vielleicht mit den verlinkten Snapshots loslegen.

octopy - Project Hosting on Google Code - und noch eine kleine und einfache Implementation von mapreduce in Python.

mincemeat.py: MapReduce on Python - stupidly simple map-reduce framework. Einfach ein Python-File und minimaler Code und schon hat man einen map-reduce-cluster.

Sass - Syntactically Awesome Stylesheets - weiß noch nicht ob ich davon so begeistert bin, aber es ist im Prinzip ein Preprozessor für CSS, der diverse Erweiterungen anbietet die komplexes CSS einfacher zu schreiben machen.

NodeBox for OpenGL | City in a Bottle - baut auf Pyglet auf und liefert eine 2D Animationsbibliothek für Python.

objgraph - Drawing Python object reference graphs - will ich mir wohl mal angucken, auch wenn ich fürchte meine Speicherstrukturen sind einfach zu wild um sie in grafische Darstellungen zu bringen (viele solche Tools gehen davon aus das alles komplexere sowieso in Objekten gekapselt ist, aber bei einem mehr funktionalen Programmieransatz werden Standarddatenstrukturen viel stärker eingesetzt). Einen Versuch wäre es aber allemal wert.

pyglet - interessante kleine Grafikbibliothek für Python. Schaut nett aus und ist multi-plattform und soll einfach zu installieren sein (keine Abhängigkeiten).

Introduction - wer statt AppleScript lieber mit Ruby automatisiert findet hier eine gute Doku zu einer Ruby AppleScript Bridge.

Lingua::Romana::Perligata -- Perl for the XXIimum Century - Perl. In Latein.

Squeryl - das sieht sehr interessant aus, erinnert stark an LINQ (was nicht unbedingt schlecht ist, auch wenns von Microsoft kommt). Es macht auf jeden Fall Sinn die Features von Scala zu benutzen um einen ORM zu bauen, der deutlich über normale Java ORMs hinaus geht.

COBOL ON COGS - mir fehlen die Worte ...