Am Rande notiert ...

CLAZY: Lazy Calling in Common Lisp bietet erweiterte lazy-evaluation für Common Lisp die über das übliche delay/force Pärchen hinaus geht.

Funds liefert voll funktionale Datenstrukturen für Common Lisp. Gerade für multi-threaded Code kann das sehr hilfreich sein. Leider noch nicht in Quicklisp drin.

qb.js: An implementation of QBASIC in Javascript (part 1) – Steve Hanov’s Programming Blog. Blasts from the past.

dcolthorp/matchure – Pattern-Matching auf Clojure-Datenstrukturen (also nicht bl0ß Strings und Regular Expressions, sondern auch komplexere Matchings gegen  Listen, Vektoren, Maps).

kriyative/clojurejs – GitHub sollte ich mir mal angucken, ist eine weitere JS-Integration, hier für einen Subset von Clojure, der automatisch nach Clientside JavaScript übersetzt wird. Und der hier unterstützt rudimentär auch jQuery.

Welcome to WuWei. Interessante Common Lisp Library, die Ajax User Interfaces rein in Common Lisp programmierbar macht, ohne sich mit der Umsetzung auf JavaScript rumschlagen zu müssen. Allerdings leider nicht für meine präferierte JS-Library jQuery, sondern für Prototype und Scriptaculous.

Underscore.js. Ca. 60 Funktionen, die das Programmieren mit JavaScript funktionaler und einfacher machen. Mal geblogmarkt, weil sowas immer wieder praktisch ist und es einfach blöd ist, die entsprechenden Funktionen jedesmal selber wieder zu schreiben.

Mozilla Labs » skywriter. Und den hier nur mal als Erinnerung, dass web-basierte Code-Editoren nicht wirklich ganz was neues sind.

Life at Eclipse » Blog Archive » Introducing Orion. Eine Browser- basierte IDE auf Eclipse-Ideen aufbauend (aber neu implementiert, also nicht einfach Java-Applets, sondern sauber auf HTML5 und JavaScript aufbauend). Könnte ganz interessant werden – klar, gibt die üblichen Miesredner, und natürlich ist das Web nicht unbedingt die ideale Plattform für eine IDE. Aber der Webbrowser ist überall und der Zugriff ist von überall relativ einfach möglich. Also zusätzliche Option in Ergänzung zu einer normalen IDE kann es also durchaus Sinn machen (z.B. für Arbeiten unterwegs über ein iPad).

MonoMac – Mono. Mal genauer angucken, hat jetzt einen aktuelleren Packager, der den ganzen Mono-Kram gleich mit einpackt in die Applikation. Zum Einen kann man damit dann Apps auf den AppStore hochladen, zum anderen ist es einfach simpler die Anwendungen zu installieren. Und da ich mich ja nunmal mit dem ganzen .NET-Zeug beschäftigen muss, kann ich auch gleich was sinnvolles damit anfangen.

Modernizr könnte praktisch werden, wenn man auf neuere HTML5 Sachen zugreifen will, aber nicht immer nur die neusten Browser antrifft (im Prinzip eine Browser-Weiche, die jemand anderes einem schon programmiert hat und auf die man mittels CSS Rules von Stylesheets oder jQuery Code zugreifen kann).

A Type-Safe Database Query DSL for Scala. Klingt interessant, ein bischen etwas zwischen LINQ und ORM für Scala. Sollte ich mir mal angucken wenn ich aus der Kälte zurück bin.

Sequel: The Database Toolkit for Ruby. Sieht ganz nett aus, die DSL gefällt mir irgendwie. Erinnert mich in Teilen an Djangos ORM.

MacRuby: The Definitive Guide. Buch bei O’Reilly in der Mache zu MacRuby. Kann man schon viele Teile lesen, vielleicht für den einen oder anderen interessant.

hoc – Project Hosting on Google Code. Nur mal so geblogmarkt, falls ich doch mal wieder mit Haskell spielen will. HOC ist eine Bridge zwischen Haskell und Objective-C und erlaubt damit Zugriff auf die OSX Frameworks.

emscripten – Project Hosting on Google Code. Und das ist das Tool, mit dem Python in den Browser/Server gebracht wurde. Es wandelt LLVM Bitcode nach JavaScript um und ermöglicht eine Reihe von interessanten Spielereien.

pyfilesystem – Project Hosting on Google Code. Könnte mal nützlich sein, wenn man von Python über einheitlichen Code auf verschiedene Filesystemtypen zugreifen will.

Monads Are Not Metaphors – Code Commit. Definitiv eine der besseren Erklärungen was ein Monad ist, die ich gelesen habe.

J Home. Weil man ab und zu einfach mal andere Sprachen angucken sollte, die so anders sind, das man garnicht erst in die Versuchung kommt sie mit dem normalen zu vergleichen (und hey, ein APL-Abkömmling mit ASCII-Zeichensatz ist wenigstens einmal im Jahr etwas Aufmerksamkeit wert). Kann man auch einfach als Highend-Taschenrechner betrachten.

’surface‘ plot 1 2 o. / 0.2 * i.60

The Art and Science of Smalltalk ist jetzt frei im Web verfügbar (PDF Link). Und da wo das Buch liegt gibts noch mehr Bücher über Smalltalk zum Freien Download.

Oni Labs: Apollo. Interessante JavaScript-Runtime für Browser die StratifiedJS nach JavaScript übersetzt und damit erlaubt asynchronen Code weitestgehend so zu schreiben wie man synchronen Code schreiben würde. Gerade mit Ajax kann das sehr praktisch sein, weil der eigentliche Algorithmus nicht mehr in den vielen Callbacks verbuddelt wird.

Python Package Index : futures 2.0. Gerade drüber gestolpert, ist eines der Features neu in Python 3.2, die Referenzimplementation läuft aber auch mit Python 2.6. Macht im Prinzip sowas wie mein lazypy und lindypy (also löst die gleichen Probleme, aber auf leicht andere Art).

Dynamic Web Development with Seaside. Hatte ich schonmal, aber da ich mich in der nächsten Zeit evtl. mal wieder mehr mit Smalltalk und SeaSide  beschäftigen möchte, nochmal als Erinnerung geblogmarkt.

Pharo Open Source Smalltalk. Sollte ich mir mal wieder angucken, denn es sieht mitlerweile sehr schick aus und die Installation ist wirklich trivial geworden. Pfiffig wie da ein Pharo.App Verzeichnis geladen wird, welches für OSX gleich die App ist und für Linux und Windows einfache Startwerkzeuge (LNK für Windows und .sh für Linux) mit enthalten sind. Ausserdem gibt es eine neue VM und das ganze ist schon richtig fix geworden. Und sieht auch nicht mehr so altbacken aus (leider immer noch GUI-im-Fenster und keine nativen Fenster).

pure klingt sehr interessant, auch wenn es natürlich mal wieder eine Nischensprache ist. Aber wenigstens mal wieder ein selten begangener (nicht unbedingt neu, aber nicht so oft in Compilern verwendet) Weg. Was besonders interessant ist: der Interpreter setzt voll auf die LLVM Infrastruktur und seit 0.45 kann Pure verschiedene Sprachen für die LLVM Backends existieren direkt integrieren (z.B. C/C++ und mit Faust eine Spezialsprache für Audioverarbeitung). Pure geht damit deutlich über einfache Scriptsprachen hinaus und bietet damit eine sehr interessante Alternative zu klassischen FFIs.

Alex Gaynor — Getting the most out of tox. Müsste ich mir mal angucken – derzeit bin ich ja noch recht faul beim Erstellen von unittests für meine Projekte, in der Regel teste ich nur gegen die eine Python-Version mit der ich primär arbeite und auch bei den Abhängigkeiten nehm ich nur die, die gerade auf meiner Kiste (bzw. im virtualenv) installiert sind. Wäre mal sinnig da ein etwas umfangreicheres System für aufzubauen, einfach um etwas aussagekräftigere Testergebnisse zu haben.

coleifer/peewee at master – GitHub. Hatte ich bestimmt schon, kleiner ORM für Python der an Django angelehnt ist und mit sqlite tut. Gerade für kleine Webservices interessant, wenn man eben nicht ein großes Framework reinziehen will, sondern einfach nur den Code etwas lesbarer gestalten will. Vorsicht: unterstützt direkt keine vom Programmierer gesteuerten Transaktionen, sondern ist im Prinzip immer im Autocommit Modus. Kann man aber mit relativ wenig Handgriffen anders machen, wenn man will – einfach UpdateQuery, InsertQuery und DeleteQuery ableiten und requires_commit an den Klassen auf False setzen, und eine erweiterte execute Methode definieren, welche einen expliziten commit-Parameter nimmt.

Middleware_and_Utilities – WSGI Wiki. Wenn man mit wsgi als Basis arbeitet, ist es eine gute Idee hier zu gucken was es an WSGI Applikationen und Middleware schon so alles gibt.

Python Package Index : urlrelay 0.7.1. Webservices mit gevent als Basis brauchen URL dispatching, urlrelay scheint da eine interessante kleine WSGI-Library zu sein, die im Gegensatz zu anderen Systemen nur genau das macht und nichts anderes.

rhodecode ist sowas wie bitbucket oder github. Benutzt wie bitbucket mercurial und bietet diverse Werkzeuge in der Oberfläche. Das besondere? Der Code ist frei und damit sowas wie Bitbucket zum selber hosten. Vielleicht eine Alternative zu Trac.