Am Rande notiert ...

Bottle: Python Web Framework sollte ich mir auch mal als Alternative angucken zu web.py – denn in Bottle ist die App einfach eine Sammlung von Funktionen mit Routen und Mappings und nicht immer gleich eine Klasse. Ausserdem können die Funktionen für unterschiedliche Verben verschiedene Parameter haben und JSON wird direkt als Outputformat unterstützt. Für Webservices klingt das noch eine Runde schlanker als web.py – und Sieht für mich auch sauberer in der Struktur aus.

RecordExtension – Mercurial. Genial, war mir bisher nicht aufgefallen. Damit kann man einzelne Patches zum Commit auswählen, wenn man mal mehrere Sachen in einem Rutsch gemacht hat, aber nicht zusammen committen will.

mrdoob/three.js – GitHub. 3D Engine in JavaScript. Eigentlich hab ich keine echte Anwendung derzeit für sowas, aber für Visualisierungen könnte das mal ganz praktisch sein. Und nunja, es ist einfach cool, allein das rechtfertigt ja schon ein Blogmark.

Namespacing in JavaScript. Alles was man dazu immer schon wissen wollte, aber nicht zu fragen gewagt hat. Oder auch: warum syntaktischer Support für Namespaces überbewertet ist und plain old objects reichen.

Wer mit Bytes in Clojure rumfummeln muss: gloss. Im Moment hab ich keine Anwendung dafür, aber mal geblogmarkt für später, wenn ich mal wieder mit Binärdaten zu tun habe.

Clojure Libs and Namespaces: require, use, import, and ns – 8th Light Blog. Einfach nur ein kurzer Abriss über die verschiedenen Namespace-Funktionen in Clojure.

slimv.vim – SLIME-like Lisp and Clojure REPL inside Vim with Profiling, Hyperspec, Paredit. Ganz interessant, da deutlich leichtgewichtiger und simpler zu installieren als Slime oder VimClojure oder eine der anderen dicken Lösungen. Und man kann einfach aus Vim heraus Common Lisp oder Clojure programmieren. Ist zwar derzeit nur im „rumspielen und gucken“ Modus, aber klingt durchaus interessant.

Chromium Blog: A New Crankshaft for V8. Und damit wird JavaScript noch ne Runde schneller. V8 ist auch die Basis für Node.Js, womit es diese Performanceverbesserung in Bälde wohl auch für den Server gibt.

pyquery: a jquery-like library for python — pyquery v0.6.1 documentation. Drin was drauf steht. Im Prinzip ein subset von dem was jQuery kann, da jQuery eigene Selektorerweiterungen hat und das hier einfach auf lxml aufsetzt (aber dafür dann vollständige css3 Selektorenunterstützung hat).

stream – Lazily-evaluated, parallelizable pipeline — stream v0.8 documentation. Interessantes kleines Modul zur einfacheren Programmierung von Berechnungsketten mit Iteratoren. Macht Sourcecode deutlich kompakter für passende Anwendungsfälle (z.B. Transformationen und Selektionen von Massendaten). Geblogmarkt, da ich sowas diverse male selber adhoc innerhalb Projekten implementiert habe.

About – pyconditions – About the module – Project Hosting on Google Code. Noch eine andere Implementierung von Common Lisp Conditions in Python.

Python Package Index : withrestart 0.2.6. Klingt ganz interessant – die interaktiven Restarts von Common Lisp sind oft sehr praktisch, gerade bei interaktivem Arbeiten.

pyclewn. Weiss noch nicht ob ich da mich reinwühlen will – ich benutze Debugger eigentlich nicht. Aber der hier ist in Vim integriert und damit direkt aus dem Editor nutzbar. Genutzt werden kann gdb und pdb (für Python).

Vim Taglist plugin manual. Ein weiterer wichtiger Baustein um mit dem MacVim richtig arbeiten zu können. Empfehlenswert sich auch mit brew install ctags das exuberant-ctags zu installieren, wenn man richtige Sprachen benutzen will (wie z.B. Python).

Vim autocomplete, Django and virtualenv | rosemanblog. Besonders die Integration von VirtualEnv und MacVim ist hilfreich, weil sonst Omnicomplete nicht sauber mit VirtualEnv zusammenarbeitet, da es nix von den dort liegenden Modulen weiss. Übrigens ist das Installieren von MacVim mit Homebrew trivial …

chrisdickinson’s wilson. Einen noch vor dem Mittagessen, denn das Framework orientiert sich stark an Django, und da ich ja Django-Fan bin, ist das sicherlich einen eigenen Link wert.

Modules – node. Viele Module für Node.js, mehr als ich auf die Schnelle durchgucken kann (oder will), also erstmal nur als for-future-perusal weggeblogmarkt.

persistence.js: An Asynchronous Javascript ORM for HTML5/Gears. Weil man ja dann doch immer mal Daten speichern will, hier ein Link auf eine Client-Side ORM Lib für JavaScript. Schaut ganz ok aus und könnte vielleicht auch für die Serverseite benutzt werden. (hab noch einen anderen Link dafür gefunden, der explizit Node.js mit  MySQL  unterstützt).

Express – node web framework. Gut, wenn man mit Node.js einfach mal schnell kleine Webservices bauen will. Ich finde das passt gerade gut zu Node.js Installationen und jQuery auf der Client-Seite. Im Moment drängelt sich JavaScript bei mir in viele Nischen, in denen vorher Python beheimatet war. Nicht zuletzt weil JavaScript tatsächlich eine gar nicht mal so üble Sprache ist.

Socket.IO ist eine kleine JavaScript Library, die Socket-Kommunikation vom Browser unterstützt und dabei verschiedenste Techniken anwenden kann und die beste verfügbare automatisch auswählt. Dadurch also auch über verschiedene Browser und Browsergenerationen funktioniert.

agr / ropevim / source – Bitbucket. Auch für das andere Tool, das mich an Spyder interessiert hat, gibt es eine Vim-Integration: Rope. Ein Refactoring Tool für Python Code. Bei einer genügend großen Codebasis nicht ganz uninteressant.

spyderlib – Project Hosting on Google Code. Guck ich mir gerade an, ist ein ziemlich interessantes Python Editor Teil mit vielen IDE Funktionen. Da es selber in Python geschrieben ist, integrieren sich diverse Python Tools sehr gut (Rope, Flake, PyLint).

Komodo Edit is a Free Open Source Editor for Perl, Python, Tcl, PHP, Ruby & Javascript. Sollte ich mir mal angucken, da TextWrangler kein Folding hat, BBEdit meiner Meinung nach einfach zu teuer ist und TextMate eine zu bescheidene Python-Folding-Unterstützung hat. Und wenn das Teil brauchbar unter den verschiedenen Systemen läuft, hätte ich endlich wieder einen einheitlichen GUI Editor (ja, ich weiß, vim ist auch überall verfügbar, aber die GUI Version macht mir einfach keinen Spaß).

Update: äh, hallo, ActiveState? Ich verstehe ja, dass ihr eure „günstige“ IDE (Sonderangebot! Nur 330 $) an den Mann bringen wollt, aber wenigstens den Source-Outline hätte Komodo Edit doch wohl verdient gehabt, oder?

Python Package Index : lupa 0.18. Bringt LuaJIT2 und Python zusammen, so dass man von Python auf Lua-Scripte zugreifen kann, die dann von LuaJIT kompiliert werden.

Weil ich gerade von Lua geschrieben habe: probablycorey’s wax liefert eine Objective-C Bridget zu Lua, speziell für iOS Geräte. Also iPhone oder iPad Apps mit Lua schreiben.

Have tracing JIT compilers won? | Lambda the Ultimate. Spannende Diskussion in der auch Mike Pall (LUAJit), Brendan Eich (Mozilla JägerMonkey) mitdiskutieren (und speziell LUAJit ist derzeit ja King of the Mountains was Performance angeht). PyPy wird auch zwischendurch erwähnt, allerdings noch auf einem deutlich älteren Stand – die neue 1.4 zeigt schon deutlich besser was mit PyPy machbar ist.

PyPy Status Blog: PyPy 1.4: Ouroboros in practice. Und damit ist PyPy jetzt auch bei der JIT in 64bit angekommen. Ausserdem funktioniert VirtualEnv jetzt problemlos, wenn man eine aktuelle Version installiert. Und schnell ist es auch immer noch.

IKVM.NET Home Page liefert eine Java VM in .NET – man soll damit sogar so verrückte Sachen machen können, wie z.B. Scala 2.8 auf .NET laufen zu lassen.

MacRuby » An Introduction to GCD with MacRuby. Grand Central Dispatch ist einer der cooleren Techniken die von Apple in der letzten Zeit auf OS Ebene gekommen sind. Und MacRuby hat da direkte Unterstützung für. Sehr interessant (auch wenns natürlich dann nur in der OSX Welt funktioniert).

Als Gedankenstütze geblogmarkt: Zach’s Journal – Making a small Lisp project with quickproject and Quicklisp. Einfach weil ich sonst quickproject und ähnliches eh wieder vergesse. Mit Clozure CL 1.6 tuts auch Quicklisp recht vollständig (speziell ist cl-fad funktionsfähig und daher kann man einen grösseren Stapel von Paketen endlich zum Fliegen kriegen). So langsam kriegt Zach einen Stapel von Tools zusammen für Common Lisp, mit dem es dann doch wieder Spaß macht damit rumzuspielen. Auch wenn ich warscheinlich nie der große Emacs-Fan werde, egal wie sehr andere auf das Teil für Lisp schwören.