programmierung - 27.8.2010 - 25.10.2010

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 ...

DOS auf Dope: Das letzte MVC-Web-Framework, das Sie jemals benötigen werden - Ich habe Angst.

Plac - sehr nette Optionsparser für Kommnadozeilentools. Das besondere: die Parameter werden einfach aus den Funktionsdefinitionen ermittelt und das ganze funktioniert von Python 2.3 aufwärts (mit Abstrichen in der Syntax, da es bei Python 2.3 noch keine Dekoratoren gab und erst mit Python 3 Annotationen existieren). Scheint eine gute Möglichkeit zu sein Tools zu bauen die auf mehreren Python-Versionen laufen sollen (denn sonst bleibt nur getopt und das ist wirklich sehr primitiv).

Python Datastructures Backed by Redis @ Irrational Exuberance - Redis selber ist schon sehr interessant, weil es nicht einfach ein simpler Key-Value-Store ist, sondern als Value strukturierte Daten (Listen, Sets) erlaubt sind. Und mit dieser Library werden Redis Strukturen als normale Python-Datentypen erreichbar und damit die Programmierung mit Redis nochmal vereinfacht. Kombiniert mit der Replikation in Redis könnte das sehr interessant in Clusterumgebungen sein.

zeromq - keine Ahnung ob ich den schon mal hatte, aber hey, Wiederholungen gibts auch im Fernsehen. Interessant an ZeroMQ: es hat nahezu keine wirklichen Build-Dependencies und ist daher auf vielen Systemen direkt installierbar. Achso, ist ein Message-Queue-Server mit schlankem Interface und guter Performance.

JazzScheme - huch? Scheint komplett an mir vorbeigegangen zu sein - es gibt eine IDE für Gambit Scheme die auf mehreren Plattformen läuft und Binaries für OS X, Windows und Linux erstellen kann.

Quicklisp - get started with Common Lisp libraries, quickly - Zach Beane will endlich das Problem der recht chaotischen Library-Situation für Common Lisp beheben und baut an einem zentralen Repository für Libraries mit einfacher Installation auf verschiedenen Lispsystemen. Im Prinzip sowas wie PyPi oder CPAN. Was generell sehr interessant ist - nur wäre es noch interessanter, wenn es irgendwo auf der Site oder der Gruppe oder dem GitHub einen Hinweis gäbe, wie man es eigentlich zum Laufen kriegt und mit welchem Common Lisp ... (ok, ist noch sehr früher Entwicklungsstatus, aber trotzdem - einzige Dokumentation ein Screencast? Hallo?)

Paver: Easy Scripting for Software Projects - interessanter kleiner Ersatz für Make. Speziell im Zusammenhang mit Python Projekten klingt es sehr nützlich.

Pysistence - gerade mal geguckt ob es sowas gibt oder ob ich es selber schreiben sollte. Pysistence implementiert funktionale persistente Datenstrukturen für Python. Bedeutet in diesem Fall dass es keine seiteneffekte gibt, sondern dass jede Funktion darauf eine neue Version der Daten liefert, wobei gemeinsame Teilstrukturen in verschiedenen Versionen miteinander geteilt werden (um effizient damit arbeiten zu können sowohl was Laufzeit als auch Platzbedarf angeht). Muss ich mir unbedingt mal angucken, denn in vielen Fällen hat mich das fehlen vernünftiger Implementationen von funktionalen Datenstrukturen in Python gestört.

The Official web2py Book - bin zwar Djangonaut, aber hier gibts ein web2py Buch online. Und schadet ja nicht mal über den Horizont zu gucken.

emscripten - LLVM-Bytecode in JavaScript compilieren, mit Schleifenerkennung etc. Ist sogar schon benutzbar um nicht-trivialen C/C++ Code nach JavaScript zu compilieren. Der Autor sieht z.B. einen Sinn in der Portierung von vorhandenem Code für Spiele in die JavaScript Welt, das ganze ist also durchaus ernst gemeint. Keine Angabe ob man einen Linux-Kernel auf einer Webseite damit booten kann ...

lambdaj - bringt Java anonyme Funktionen und higher-order-Funktionen (naja, zumindestens Annäherungen an diese) bei.

nakkaya's static at master - GitHub - statischer Generator für Websites in Clojure.

Meliae python memory analysis in Launchpad - klingt sehr interessant, mal für spätere Probleme geblogmarkt, könnte bei dem einen oder anderen Problem helfen. Installation übrigens recht einfach über pip install meliae oder easy_install meliae, es ist auch auf pypi gelistet.