Am Rande notiert ...

Zotonic – Hmm, ob ich mir das mal angucken sollte? Ein CMS in Erlang, welches einige interessante Features auf der Liste hat – und so ein bischen in die Richtung zielt, die auch Drupal hat, also eher ein CMS Baukasten zu sein, als eine reine vorgefertigte Blogging-Lösung. Das Admin-Interface sieht auch recht aufgeräumt aus.

hij1nx/SugarSkull – GitHub. Weil ich letztens schon mal single-page JavaScript apps (ein Beispiel für diesen Typ Anwendung wäre TiddlyWiki) hatte: das hier ist eine einfache Library, die keine Voraussetzungen hat, mit der man einfaches Parsing und automatischen Funktionsstart für hash-routes bauen kann. Also im Prinzip sowas wie der Django URL Handler, nur eben in JavaScript und rein auf dem Client.

Seesaw – GitHub. Da mich GUI-Programmierung fast immer nervt, ist das hier ganz interessant: eine Clojure-Library die Swing in eine sehr viel kompaktere Form bringt. So dass man sich für einfache GUIs nicht mehr die Finger wund schreiben muss. Und da MCL-IDE ja jetzt auch Clojure unterstützt, wird es vielleicht ja doch mal Zeit sich das ganze näher anzugucken.

Single Page Apps with Node.js. – blog.nodejitsu.com – scaling node.js applications one callback at a time.. ein paar interessante Projekte gelinkt von dem Artikel, die für Webanwendungen die in einer einzigen HTML-Seite leben interessant sind. Mal für später weggeblogmarkt.

Roundabout for jQuery by Fred LeBlanc. Netter Effekt, auch wenn ich im Moment nicht so genau wüsste, wofür ich ihn bräuchte (ok, man könnte es zur Anzeige von Bildern nutzen, aber ich persönlich ziehe da dann doch Lightbox oder ähnliches vor). Vermutlich ist es einfach nur ein Gimmick, aber manchmal ist sowas ja auch ganz brauchbar.

Cloud Foundry – Make it Yours!. Interessantes Projekt zum Aufbau einer auf Ruby aufbauenden Cloud-Plattform. Der Source ist frei auf Github zu finden. CloudFoundry ist wohl das, was unter ActiveState Stackato läuft (bei denen dann Perl und Python unterstützt werden). So eine private Cloud kann auch für eigene Projekte ganz interessant sein, weil man dann zu Hause oder unterwegs lokal entwickelt und der Deploy auf den eigenen Rootserver simpel und einfach ist. Irgendwann will ich mir sowas glaub ich mal einrichten (zur Zeit wird bei mir jeder Service wieder individuell eingerichtet, das ist auf Dauer durchaus nervig).

Introducing JetBrains dotPeek – dotPeek – Confluence. Für Neugierige, die in .NET Assemblies reingucken wollen (und für Mono Assemblies wohl auch, aber da ist ja oft der Source sowieso verfügbar).

QuickSilver Network. Hmm, hatte ich das schon? Egal, ist cool. Und zwar ist es eine Smalltalk-ähnliche Entwicklungsumgebung, aber mit JavaScript als Sprache und im Webbrowser anstatt in einer Anwendung. Allerdings alles noch sehr roh und einige der Sachen tun nicht so richtig (zumindestens im Safari), aber irgendwie trotzdem nett. Irgendwie könnte ich mir jetzt vorstellen, dass jemand das mit TiddlyWiki verheiratet (für die Persistenz) und dann daraus ein JavaScript Imagesystem ala alten Smalltalk-Systemen machen könnte, nur halt im Web. Wäre irgendwie witzig. Sinnlos, aber witzig.

On TermKit. Ein ziemlich cooles Projekt zur Neu-Erfindung von Terminals. In diesem Fall wird der Output als HTML gemacht und das Terminal wird nicht als einfache Konsole sondern als Browserfenster gerendert. Dadurch kann man zum Beispiel Verzeichnislisten grafisch machen oder Bilder direkt ausgeben. Das ganze geht auch auf Sachen wie Pipes ein und auf die Idee wie man Daten zwischen Werkzeugen transportiert, so das sie alle damit universell arbeiten können – hier kommt JSON zum Einsatz. Das ganze macht durchaus einen durchdachten Eindruck.

AI art | painting robot | art | expert systems. Mal was anderes – ein richtiger Roboter der mit Lisp (also zumindestens das Prototyping) gesteuert mal. Also nicht so ein virtueller Roboter ala Turtlegrafik, sondern richtige Hardware die sich bewegt.

xmlisp – eXtreme Media Lisp: Rich media cross-platform programming for 3D (OpenGL) and 2D applications. Hatte ich glaube ich schon mal, bin mir aber nicht sicher. Egal, Wiederholungen sind ja nix ungewöhnliches, und das hier ist wirklich interessant – eine Lisp-Umgebung mit besonders guter Unterstützung für 2D und 3D Daten. Hat noch eine ganze Menge mehr auf der TODO – das Ziel ist eine Lisp-Umgebung speziell für Spieleprogrammierung und andere grafische, interaktive Programme. So ein bischen wie Processing.

MilkPack – Edgar Gonçalves. Interessantes Projekt das eine Taskliste implementiert, die mit Remember-the-Milk im Internet kommuniziert. Das interessante daran: es ist in Common Lisp geschrieben und nutzt intensiv die Objective-C Bridge für OpenMCL.

michaelmacinnis/oh. Eine Shell in Go. Die Shell hat einige interessante Features, zum Beispiel Prototyp-basierte Objektorientierung, first-class Funktionen und explizite Kanäle (was andere Shells implizit hinter Pipes liegen haben). Sieht auf den ersten Blick ganz interessant aus.

Javascript PC Emulator – Technical Notes. Ja, ein PC Emulator. Basiert auf QEmu, also durchaus ausgereifter Code. Bootet Linux im Browser. Weils geht.

Lightroom Developer Center. Weil ich mir das demnächst mal wieder genauer angucken will, vielleicht mache ich mir ja doch noch mal ein eigenes Plugin zum einfachen Sync nach WordPress. Und Lua ist ja nicht so eine schreckliche Sprache.

Microsoft Small Basic. Auf seltsame Weise nostalgisch. Ein Basic im Stile von QBasic, nur für Silverlight und den Browser mit Libraries für Grafikausgaben und ähnliches. Im Prinzip sowas wie Processing, nur eben .NET statt JVM und Basic statt Java.

Writing Plugins for gedit 3 with Python. Schaut so aus als ob Gnome 3 tatsächlich eine recht generische Schnittstelle für Python-Scripting bekommt. PyGTK war zwar auch schon da, aber das ist einfach nur eine GUI Lib. Jetzt wird aber über GObject und Friends gearbeitet und damit sind weitaus mehr Elemente ansprechbar. Gedit ist übrigens ein recht netter grafischer Editor, der unter Linux durchaus als Alternative zum unter OSX gerne genutzten BBEdit oder TextWrangler genommen werden kann.

Python Interpreter by Noam Gat — Unity Asset Store. Und das hier ist eher was für meine privaten Spielereien: ein Plugin, welches in Unity3D eine interaktive Python Shell einbindet. Irgendwie reizt mich Unity3D immer wieder wenn ich es auftauchen sehe. Zumal mitlerweile der Einstieg frei ist (leider ist der Sprung zu Pro – das einige essentielle Tools wie einen Profiler oder Unterstützung für externe Versionierung anbietet – doch ziemlich heftig)

micromongo — micromongo v0.1 documentation. Auch mal angucken, micromongo liefert einen minimalen ORM für MongoDB Server. Wobei ich da allerdings mal gucken müsste, ob es nicht mitlerweile bei django-nosql auch schon Unterstützung für MongoDB gibt, dann müsste ich nicht eine andere ORM Syntax benutzen – allerdings ist micromongo wirklich ziemlich schlank und basiert nur auf pymongo, also z.B. nett für kleine Webservices, weil man nicht einen Haufen Module installieren muss.

execnet v1.0.9 documentation. Müsste ich mir auch mal angucken, es ist im Prinzip eine Library zur Verteilung von Funktionen über ein Netzwerk von Instanzen – kein volles map/reduce oder ähnliches, mehr sowas wie ein besseres RPC. Speziell interessant um zum Beispiel eine normale cpython Front mit einem Compute-Backend auf Basis von PyPy zu benutzen (oder umgekehrt dem PyPy-Server ein numpy+scipy Backend in CPython für Datenanalyse zu verpassen).

Read the Docs. Kannte ich noch garnicht – ein Webdienst wo man verschiedenste Dokumentationen über eine einheitliche Oberfläche lesen kann. Und seine Dokumentationen für Projekte hosten kann. Und auch gleich verschiedene Versionen von Dokumentationen zu Projekten.

„When you choose an eventually consistent data store you’re prioritizing availability and partition tolerance over consistency, but this doesn’t mean your application has to be inconsistent. What it does mean is that you have to move your conflict resolution from writes to reads.“ via Mochi Labs – statebox, an eventually consistent data model for Erlang (and Riak). Auch ausserhalb Erlang interessant, denn das Problem ist genereller Natur – Datenmodelle für Datenbanken mit Transaktionen können nicht einfach auf eine eventually-consistent Datenbank wie Riak (oder Cassandra) transportiert werden. Der Grund liegt eben darin, dass Konflikte erst beim späteren Lesen auffallen, da sie vorher ja sozusagen noch „unterwegs“ sind.

pmundkur/odisco. Eine Implementierung für Map/Reduce nach dem Disco Worker Modell in Objective Caml. Sowas gibts auch schon für Python. Falls ich mal wieder mit OCaml rumspielen will.

Reinteract könnte für alle Zahlenfresser und Grafikspieler interessant sein, sofern sie von Python keine Pickel kriegen: eine Implementierung von Worksheets wie man sie von Mathematika und Sage kennt, nur als direkte Python-Anwendung auf Basis von PyGTK. Man kann Python-Source reinhacken und ausführen, älteren Source nachträglich editieren und sein Output im Worksheet wird automatisch aktualisiert. Downloads auch für OSX verfügbar. Leider ist PyGTK kein 1st-class citizen der Mac Umgebung – es sieht einfach nur grausig aus mit den halb-defekten Controls und die Useability ist leider auch nicht wirklich OSX-like. Irgendjemand könnte das mal nach Cocoa portieren.

A successful Git branching model » nvie.com. Nicht ganz uninteressanter Artikel über verteilte Versionsverwaltung und Branching/Merging. Ok, geht speziell auf git und dessen Kommandos ein, aber die Übersichten und Überlegungen treffen in vielen Punkten genauso auf Mercurial zu und in den Abweichungen sind sich die Probleme ähnlich genug, dass der Artikel trotzdem lesenswert bleibt.

counterclockwise – Counterclockwise is an Eclipse plugin helping developers write Clojure code. Und wenn man sich eh Eclipse auf die Platte kippt, ist vielleicht ein Clojure Plugin auch nicht uninteressant, damit man seine tägliche Ration Klammern bekommt.

Typesafe Stack ist eine Distribution von Scala (2.9.0) und Akka (1.1, ein Actor-Framework für Scala mit diversen Tools zur Programmierung von verteilten Lösungen in Scala) zur einfachen Installation. Zusätzlich wird da noch auf sbt und Scala IDE for Eclipse (Beta der Version 2 nehmen, da diese komplett neu ist und die 1er nicht mit Scala 2.9.0 tut und auch nicht besonders gut ist) als Ergänzung hingewiesen. Installer gibts für Windows, OSX und Linux (man kann natürlich auf allen auch irgendwie selber installieren, aber mancher mag ja lieber normale Installationswege). Und wer will kann dort Support kaufen – und der Laden gehört Odersky, dem Scala-Erfinder und JVM-Sprachen-Guru. Eigentlich könnte Odersky auch gleich noch sein  Buch über Scala-Programmierung als PDF mit reinwerfen (in der ersten Auflage ist das auch frei).

LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #1/3. Und nicht nur was undefiniertes Verhalten in Sprachstandards ist, sondern auch was die Motivation dahinter ist und was es für Kompilerhersteller bedeutet.

RaptorDB kling ganz interessant, ein klassischer Key/Value-Store für .NET der auf MurMurHash aufbaut und vor allem auf Performance und Storage-Stabilität ausgelegt ist. Könnte für den einen oder anderen Zweck ganz sinnvoll sein, speziell da es auch sauber mit Threading zusammenarbeitet.

App Engine Go Overview. Ehrlich gesagt fänd ich es ja spannender wenn Google mal vom veralteten  Python 2.5 wegkäme. Aber nunja, statt Python 2.7 oder einer JVM Sprache kann man jetzt mit Go die AppEngine programmieren. Gleichzeitig haben sich aber Preise und Bedingungen geändert, wär also wohl besser erstmal zu gucken ob es sich überhaupt lohnt. Go kann man nämlich auch genauso gut auf seinem eigenen Root Server benutzen …