Am Rande notiert ...

Cleaning… – Marco.org. Da ist doch noch einiges etwas seltsam bei iOS 5. Hier das Problem der cache und tmp Verzeichnisse, die jetzt sehr viel aggressiver bereinigt werden, was dazu führt, das manche Anwendungen wesentlich öfter Daten aus dem Netz holen müssen (oder gegen die Apple Guidelines verstoßen und Dokumente doch im Cache speichern). Betrifft vor allem Offline-Reader, denn deren Inhalte sind ja per Definition rekonstruierbar, gehören also in den Cache – dort werden sie aber unter Umständen mal eben beseitigt, was das ganze Offline-Readen ad absurdum führt. Ungut.

How to speed up the Android Emulator by up to 400%, Nuxeo Developers Blog. Mal geblogmarkt, denn wir werden wohl demnächst etwas mit Apps rumspielen und der Android Simulator ist grottenlahm – damit zu testen macht fast keinen Sinn, da man gerade bei Phonegap Anwendungen das Browserrendering mit Papier und Bleistift und Radiergummi überholen könnte, so langsam ist der Bildaufbau. Mit der Lösung hier hat man zwar keinen exakten Test eines Android-Gerätes, aber zumindestens für die ersten Feeling-Tests sollte es ausreichend sein, da es gerade bei Phonegap eher darauf ankommt, dass die Rendering-Engine die gleiche ist als darauf, dass die CPU die gleiche ist.

SuperCollider » About. Das hier ist was unter dem vorigen Projekt als Basis benutzt wird. SuperCollider hat seine eigene Programmiersprache, kann also auch für Live Coding und ähnliches verwendet werden.

Home // Overtone. Bin ja immer begeistert von Krachmachern – das hier ist ein Tool zur interaktiven Soundprogrammierung und Livecoding und Instrumentenbau (also digitalem natürlich), und das ganze in Clojure geschrieben. Vielleicht für den einen oder anderen ein Grund sich mal Clojure näher anzugucken.

virtualenvwrapper 2.10.1 — virtualenvwrapper v2.10.1 documentation. Hmm, hatte ich glaube ich schon mal, aber da ich mitlerweile fast ausschließlich mit virtualenv arbeite sollte ich es mir nochmal angucken – das scheint wirklich einiges zu vereinfachen (allerdings scheint es davon auszugehen, dass alle Umgebungen in einem Hauptverzeichnis liegen, da müsste ich warscheinlich ein bischen was bei mir anpassen).

Straight Talk on Event Loops. Nach seinem wunderschönen Rant „Node.js is Cancer“ geht Ted Dziuba nochmal etwas mehr darauf ein, was mit reinen async-event-Lösungen wie node.js das Problem ist. Als Programmierer eines recht alten Projektes in Python – dem Toolserver for Python – kann ich das ganze durchaus nachvollziehen. Gibt gute Gründe, warum ich in die eventloop integrierte Threads für parallele Verarbeitung bei Bedarf realisiert habe. Dieses „async ist schneller und besser als threads“ ist genau so ein Hype-Unfug wie „NoSQL ist schneller und besser als SQL“ und anderen Säuen die derzeit so durchs Dorf getrieben werden.

dust ist eine Template-Library für JavaScript, die in Kanso benutzt wird. Von der Funktionalität her sehr ähnlich zu Django Templates, allerdings mit leicht abgewandelter Syntax.

Kanso Framework. Das klingt sehr interessant – ein Framework für die Programmierung von JavaScript CouchApps. Also Anwendungen, die in JavaScript geschrieben sind, und komplett aus einer CouchDB-Installation laufen. Der Server muss einfach nur eine CouchDB Instanz bieten und das wars schon an Voraussetzungen – und da CouchDB von Hause aus Replikation mitbringt, kann man problemlos hochskalieren oder Fehlertoleranz realisieren – einfach einen Cluster aus mehreren CouchDB Instanzen bilden. Genauso interessant sind Replikationen der Produktionsdatenbank auf einen anderen Topf wie z.B. die private Entwicklermaschine oder diverse andere Szenarien die mit CouchDB so machbar sind. Da das ganze auf CommonJS als Sprachbasis aufbaut ist JavaScript auch nicht ganz so schlimm als wenn es roh verwendet würde.

StatsModels: Statistics in Python — statsmodels v0.3.0 documentation. Nicht im Fokus für mich im Moment, aber mit dem Modul kann man Zahlen auf ihr statistisches Modell hin untersuchen.

pandas: powerful Python data analysis toolkit — pandas v0.4.1 documentation. Hatte ich glaube ich noch nicht, aber ist recht interessant für Zahlenfresser und Listenvergleicher: ein recht mächtiges Toolkit zur Analyse von Massendaten, speziell mit Behandlung von fehlenden Daten und Alignment von Daten auf eine gemeinsame Basis. Insgesamt nicht ganz uninteressant für ein Projekt auf der Arbeit, bei dem ich häufiger mal mit größeren Datenmengen aus Fremdquellen zu tun habe.

websites – How do I suppress the address bar in mobile Safari? – Apple – Stack Exchange. Geblogmarkt weil ich einfach nur das ganze mir mal merken will – ist nämlich recht praktisch für Webanwendungen wenn die alberne Adressleiste nicht mehr da ist (jedenfalls wenn man mit Single-Page-Anwendungen arbeitet die eh das meiste auf dem Client machen)

„Algorithm“ is Not a Four-Letter Word. Algorithmen und deren Vielfalt und warum Programmierer sich mit ihnen beschäftigen sollten (Stichwort: mentales Bankdrücken) am Beispiel von Algorithmen zur Generierung von Labyrinthen.

psycopg2-ctypes – GitHub. Wer mit PyPy rumspielt und einen Datenbanktreiber braucht, der hier könnte helfen – das ist der klassische psycopg2, aber in einer Version die auf ctypes aufbaut und damit effizient in PyPy integriert werden kann.

django-tastypie – GitHub. Als Alternative zu django-piston klingt das hier sehr interessant – zum Beispiel liefert es automatisch alle CRUD Features über unterschiedliche APIs ohne eigene Programmierung. Gerade für Projekte die stärker auf Webapp abzielen (und wo somit größere Teile des Codes lokal im Client in JavaScript laufen) interessant.

coleifer/flask-peewee – GitHub. Interessantes kleines Projekt, dass mit Flask und Peewee arbeitet und daraus einen etwas vollständigeren Stack für Python Webprogrammierung macht. Liefert auch ein Admin-Interface, wie Django – dazu wird dann wtforms benutzt. Flask selber benutzt Jinja2 und Werkzeug unten drunter – dadurch kommen z.B. gute Debugging-Tools und mächtiges Templating auch rein. PyCharm in der kommenden Version 2 wird übrigens auch Jinja2 auf dem gleichen Level unterstützen wie Django Templates (Template-Debugging mit Breakpoints und Steppen im Template!).

Poor Mans IDE Plugin PMIP – Google Project Hosting. Wer sich von m einem Post über PyCharm als Python IDE anstecken hat lassen und jetzt auch die IDE gerne erweitern möchte – mit dem Plugin hier kann man relativ einfache Scripte mit Ruby bauen und muss nicht immer das ganz große IntelliJ SDK rausholen.

Python for Facebook – Welcome. Da Facebook mal eben im Sommer den Support für das Python SDK eingestellt hat und unter anderem auch den gesamten Bugtracker geleert hat, haben sich Python-Entwickler für Facebook-Apps anderweitig gesammelt – das hier ist einer der Plätze. Gibt aber wohl noch den einen oder anderen Ort im Netz, wo Leute Patches und Fixes sammeln.

facebook/python-sdk – GitHub. Auch noch wichtig, das offzielle Python SDK für Facebook Open Graph Applikationen. Damit kommt man an die ganzen Sachen direkt von Python dran – also auch ganz ohne Django (wenn man das denn will).

Django Facebook 2.0 – Integrating Facebook. Weils im Moment interessant ist (jaja, ich weiss, alles macht G+, aber man soll ja antizyklisch handeln), hier ein Link zu einer Django-Library mit der man Open Graph Apps für Facebook bauen kann. Könnte gerade zusammen mit der neuen Timeline von Facebook wieder interessant werden. Und G+? Naja, solange die nur armselige Spar-APIs liefern, ist das für Bastler schlichtweg uninteressant.

storm auf GitHub. Twitter hat sein verteiltes Eventsystem als Open Source veröffentlicht. Klingt sehr interessant – im Prinzip ein lastverteilter und fehlertoleranter RPC Dispatcher mit Garantie für die Ausführung jedes Events. Generell da interessant, wo man hohe Events/sec verarbeiten muss – Storm bietet dort eine einfache Skalierung bei Bedarf durch einfaches zuschalten von neuen Knoten. Und das ganze ist auch noch recht unabhängig von verwendeten Programmiersprachen (Ruby und Python sind als weitere Sprachen neben JVM-Sprachen schon gleich dabei).

PLEAC-Objective CAML. Wer das Perl Cookbook kennt, ist hieran vielleicht interessiert – es sind einfach die Problemstellungen aus dem Perl Cookbook in Objective Caml. Generell liefert das PLEAC Projekt das gleiche für diverse Programmiersprachen, OCaml ist aber neben Perl und Groovy die einzige Sprache mit 100% Abdeckung.

Offline Web Applications – Dive Into HTML5. War beim ersten Durchgucken irgendwie besser beschrieben als in anderen Quellen die ich bisher gelesen habe. Von daher mal geblogmarkt.

Snow project. Sehe ich zum ersten Mal, ist aber schon seit ein paar Jahren raus – eine GUI Library für ABCL (Armed Bear Common Lisp), welches ja bekanntlich auf der Java VM läuft. Liefert auch gleich als Standard eine grafische REPL mit in die man Common Lisp eingeben kann. Laut Doku leider auf einer etwas älteren Version von ABCL basierend – in den neueren hat sich schon eine ganze Menge getan. Trotzdem ganz nett um mal damit rumzuspielen.

albertz/Pyjector – GitHub. Interessant für Python-Hacker die keine Probleme damit haben ihr System etwas zu destabilisieren, dafür dann aber eine Python-Shell in jedem Cocoa Programm zu bekommen. Kann man gut nutzen um z.B. im Browser rumzuhacken. Eine Verwendung zeigt der Autor mit seiner Erweiterung für Chrome mit der man Webapps auch unter OSX erzeugen kann. Das Feature gibts ja derzeit nicht in der veröffentlichten OSX Version von Chrome.

PyPy Status Blog: We need Software Transactional Memory. Interessanter Artikel, warum wir STM wollen, auch wenn es vielleicht nicht offensichtlich ist – nämlich um die komplexeren Primitive der höheren Sprachen wir Python Transaktionsfest zu machen. Und wenn wir STM als Implementationsdetail haben, dann können wir das auch einfach dem Programmierer verfügbar machen.

Why Im not on Google Plus – Charlies Diary. Charles Stross über Sachen die Programmierer oft falsch denken wenn sie an Namen denlen. Hier speziell über Google+

Luban: a generic “language” for creating user interface — luban v0.2 documentation. Mal angucken – könnte bei meiner ewigen Suche nach einem kompakt zu nutzenden Userinterface helfen. Speziell Web als UI wird ja immer interessanter mit den ganzen Sachen die in dem Bereich in den letzten Jahren entstanden sind.

PyPy Status Blog: PyPy 1.6 – kickass panda. Wird immer besser – ctypes sind jetzt richtig fix (das ist eine der FFI Optionen in Python) und es gibt Beta-Unterstützung für C-Erweiterungen aus dem cpython-Umfeld (wobei das nur eine Notlösung ist, direkte PyPy-Erweiterungen werden eigentlich immer effizienter sein, aber so kriegt man wenigstens einige der Erweiterungen überhaupt verfügbar solange diese keine eigene PyPy-Version bieten). Oh, und es gibt einen ersten Ansatz für ein numpy Modul das direkt mit dem JIT von PyPy integriert ist – noch nicht vollständig, aber ein Anfang ist gemacht.

The Python Standard Library By Example – Doug Hellmann. Für all die, denen eine gedruckte Version des Internets lieber ist: das ist ein Buch mit all den PyMOTW (Python Module of the Week) Artikeln drin, aufpoliert und angehübscht und schön zusammengestellt. Sicherlich sehr praktisch, denn manchmal hat man einfach ein Buch schneller zur Hand als einen Computer – und im Bett sind Computer sowieso verboten. (Achtung: bezüglich Bett, das ist ein 1344 Seiten Schinken!).

Python and fileinput – All this. Ich kenn das Modul, ehrlich. Aber irgendwie ist es mal wieder meiner Erinnerung entschwunden. Ist wirklich eine praktische Sache wenn man Kommandozeilentools schreibt, einfach weil es einem das Unix-typische Behandeln von Input abnimmt.