[Cython] ANN: Cython 0.13 released! - bei Cython (ehemals PyRex) gibts wieder ein neues Release. Und die Sprache für Python-Erweiterungen wird immer vollständiger. Damit ist die Erstellung von performance-kritischen Teilen des Codes deutlich einfacher, weil man in einer sehr Python-ähnlichen Sprache arbeiten kann.
programmierung - 12.5.2010 - 26.8.2010
JEmacs - the Java/Scheme-based Emacs - nur so for future curiosity geblogmarkt.
Scribes - Simple And Powerful Text Editor for GNOME - interessantes Projekt, ein Editor der in Python erweiterbar ist. Da ich auffe Arbeit in Linux schaffe, könte ich mir das nach dem Urlaub mal angucken.
PEP 380 -- Syntax for Delegating to a Subgenerator - ein sehr interessanter Punkt zur Erweiterung von Python. So interessant, dass Guido sich vorstellen könnte diesen PEP am Moratorium vorbei schon jetzt zu implementieren. Generatoren in Python entwickeln sich für mich zu einem sehr angenehmen Sprachfeature - Code wird sehr oft deutlich kompakter und lesbarer für mich. Wenn nur endlich Django auch auf Python 3 verfügbar wäre könnte ich auch einige der dort vorhandenen Neuerungen benutzen. Python 2.7 lindert allerdings den Schmerz etwas.
saucelabs's monocle at master - GitHub - interessantes Paket zur einfacheren Programmierung von asynchronen Routinen in Python. Besonders interessant: es unterstützt neben Twisted auch Tornado.
Hg-Git Mercurial Plugin - hatte ich das schon? Keine Ahnung, egal, ist gut, kann man ruhig wiederholen.
Valued Lessons: Monads in Python (with nice syntax!) - sehr interessanter Hack, der durchaus auch praktischen Nutzen haben kann. Gefunden beim Schockwellenreiter.
pjs4ipad - Project Hosting on Google Code - das ist ein wirklich cooles Projekt: processing.js in einer Variante für das iPad, bei der HTML5 local storage benutzt wird um Programme lokal zu speichern, so dass man mit einem eigenen Programm auch offline arbeiten kann. Interessant zum Beispiel um unterwegs mal ein bischen zu doodeln (kleine Programme schreiben, die interessante optische Effekte haben). Und weil es alles WebApp ist, trifft die AppStore-Restriktion auch nicht.
TIDE 2.0 beta - mal angucken, eine JavaScript IDE die komplett im Browser läuft.
Python IDE with Django support : JetBrains PyCharm - die JetBrains Leute (von denen IntelliJ ist) haben jetzt eine reine Python IDE auf der Basis von IntelliJ gebaut und die hat eine Menge interessanter Features. Müsste ich mir mal angucken, zumal die auch Unterstützung für Django und Google App Engine drin hat.
itod's fluidium at master - GitHub - der Unterbau von Cruz (social browser), Fluid (site specific browser) und Fake (browser automation ala Automator). Eignet sich als Basis für RIA genauso wie als Basis für spezifische Browser für Websites oder Mashups oder whatever. Ist allerdings Mac only.
Lightweight Approach to AOP in Python - und da wir gerade bei AOP sind: gibts auch als library für Python.
Building iPhone Apps with HTML, CSS, and JavaScript - wer keinen Bock auf AppStore hat und wem eine WebApp reicht, hier gibts ein Buch darüber. Unter CC Lizenz.
jquery-aop - Project Hosting on Google Code - AOP bietet (unter anderem) einfacheres programmiertes Debugging und ist sehr praktisch wenn man Frameworks nachträglich modifizieren will, aber nicht wildes Monkey-Patching will. Da jQuery mein bevorzugtes JavaScript Werkzeug ist, sollte ich mir das mal genauer angucken.
jessenoller.com - PEP 3148 Accepted: “futures – execute computations asynchronously” - der PEP ist mir ein bischen zu sehr an der Java Welt orientiert, eine schlankere und mehr Python-spezifische Implementierung wäre mir lieber gewesen, aber immerhin. Besonders interessant die Überlegungen die Concurrency Sachen mal durchzugucken und neu zu sortieren.
Chickenfoot - das ist was unter CoScripter läuft. ChickenFoot ist allerdings nicht irgendeine adhoc-Scriptsprache wie bei CoScripter, sondern einfach nur JavaScript mit einer recht interessanten Automationslibrary integriert. Also als Baustein meiner Meinung nach besser geeignet, zumal die Scripte auf dem lokalen Rechner bleiben.
CoScripter - gucke ich mir gerade an, ist eine Erweiterung zur Automation von Webzugriffen (ähnlich wie FakeApp, aber weniger grafisch) und könnte mir helfen meine SL Transaktionen wieder automatisiert runterzuladen. Denn die sind - wie bei vielen "social networks" - hinter bescheuert komplexen Login-Szenarien versteckt, die eben nicht trivial mit z.B. Python zu automatisieren sind. Allerdings speichert das die Scripte auf einem öffentlichen Server, selbst private Scripte sind dort abgelegt, nur nicht für jeden Erreichbar. Irgendwie also auch nicht so das wahre.
Dropbox API - und das könnte für die nächste Zeit ein recht wichtiges Spielzeug für mich werden - eine API für Dropbox. Klar, meistens muss ich nur Files hin- und herschicken, da reicht es einfach Dropbox zu benutzen. Aber für manche Sachen wäre eine API zum Zugriff auf die Metadaten auf Dropbox durchaus interessant (eines meiner schon länger auf Halde liegenden Projekte wäre eine Umsetzung des Simpletext.ws Dienstes von Google App Engine auf einen normalen Python-Dienst mit Dropbox als Backend zum Beispiel).
Python 2.7 Release - einige gute Sachen drin, speziell die set und dictionary comprehensions mag ich - bisher habe ich mir mit Generator-comprehensions beholfen, aber gerade die dict-comprehensions sehen einfach besser und lesbarer aus. Aufgrund diverser Abhängigkeiten bin ich auf der Arbeit wohl noch auf längere Zeit an Python2 gebunden, da ist es schön, dass einige der Python3 Features auch in Python2 verfügbar werden. Allerdings bin ich einer derjenigen, die wirklich Python3 wollen - allein schon das deutlich aufgeräumtere Stringhandling mit Unicode als Default. Aber solange Django nicht auf Python3 läuft, bleib ich notgedrungen auf Python2.
liebke's clj - ah, jemand hat Paketinstallation und eine anständige REPL für Clojure zusammengeworfen, so dass man auch mal eben schnell interaktiv mit Clojure rumspielen kann, ohne jedesmal ein Projekt anlegen zu müssen. Ganz praktisch um mal fix mit irgendwelchen Java-Libs rumzuprobieren. Macht intern nix anderes als ein verstecktes Leiningen-Projekt anzulegen und zu verwalten, ist also eher Kosmetik, aber die richtige Art von Kosmetik
jessemiller's HamlPy - muss ich mir mal angucken, eine Implementation von HAML (im Prinzip eine Kurznotation für HTML) mit Integration für Django. Gerade für die vielen kleinen internen Templates könnte das interessant sein, denn die werden von Programmierern und nicht Designern gemacht. Allerdings müsste ich mir dann erstmal angucken wie gut (oder wie schlecht) ich damit JavaScript integriert bekomme. Aber sicherlich interessant - HTML ist nicht wirklich Diff/Merge-freundlich und schlichtweg nervig zu schreiben und zu lesen.
Write-Ahead Logging - in SQLite! Ab Version 3.7. Das ist sehr interessant, weil damit ein Anwendungsfall einfacher wird - multicore-nutzende Applikationen, die mit einer embedded Datenbank arbeiten wollen. SQLite wird damit noch mehr zum Schweizer Messer der Datenspeicherung (und wenn man beim Programmieren darauf Rücksicht nimmt, ist der Wechsel zu PostgreSQL für größere Installationen wo die embedded Datenbank keinen Sinn mehr macht einfach lösbar).
Inconsolata - bin über mein iPad (in iSSH) über diesen Font gestolpert und empfinde ihn als sehr angenehm. Gerade mit heutigen höheren Bildschirmauflösungen kann auch ein Monospace Font gerne etwas Wert auf Details legen - und der hier macht das gut.
Nicholas Piël » ZeroMQ an introduction - kurzer Überblick wie asynchrones Messaging mit ZeroMQ und Python aussieht und wie die verschiedenen Messaging-Szenarien abgebildete werden können. Sollte ich mir mal genauer angucken, denn es ist sowas wie ein deconstructed Framework für Messaging - also nur die Bausteine um ein eigenes, optimal auf das Problem zugeschnittenes, Messaginng System bauen zu können.
PyFilesystem 0.3 released - schaut interessant aus, Dateisysteme in und mit Python. Man kann FUSE Dateisysteme in Python schreiben oder einfach auch nur auf Amazon S3 oder FTP mit dem gleichen Code zugreifen.
About Greenfoot - eine grafische Programmierumgebung für Spiele und anderes interaktives in Java. Von den BlueJ Machern.
PyPy Status Blog: A JIT for Regular Expression Matching - sowas ist der Grund, warum ich durchaus glaube, dass die Zukunft von Python PyPy heisst (oder etwas vergleichbares) und warum ich sowas wie PyPy haben will. Eine Umgebung, in der alle Sprachelemente auf eine gemeinsame Basis zurückgeführt werden, in der ich auf allen Abstraktionsebenen arbeiten kann - notfalls auch auf der Ebene der Codegenerierung. Das bietet wesentlich angenehmere Optimierungsmöglichkeiten als das Modell von CPython, wo höhere Performance ab einem Punkt nur durch C-Erweiterungen machbar ist. Allerdings komme ich auch von Lisp, wo es völlig üblich ist, von High-Level-Sprachelementen bis runter auf die Codegenerierung mit einer Sprachfamilie zu arbeiten. Meine Xerox Lisp Maschine hatte einen TCP/IP Stack in einem Subset von Interlisp geschrieben - das ist durchaus mit der Situation von PyPy und RPython vergleichbar.
nutshell — Lettuce v0.1.2 (barium release) documentation - lettuce ist cucumber für Python. cucumber ist BDD für Ruby. BDD ist behaviour driven development - zuerst schreibt man BDD stories, dann schreibt man dazu den Code und ein kleines Python-Modul, welches die Story mit dem Code verbindet. Daraus ergibt sich dann automatisch der Testcode. Sieht auf den ersten Blick etwas albern aus, aber hat einfach den Vorteil, dass sich Testfälle tatsächlich an spezifiziertem Verhalten orientieren und nicht einfach abstrakt in den Wald programmiert werden. In Kombination mit testcase-pro-bugreport liefert das eine recht brauchbare Testumgebung.
iFolder - bin ich erst jetzt drauf gestoßen. Open Source von Novell die eine Funktionalität analog zu Dropbox aufbaut. Nur dass man seinen Server selber betreibt (eine Linux-Kiste, fertige Pakete für Open Suse). Das ganze mit Mono gebaut, Clients für Linux, Windows und Mac. Ich habs noch nicht ausprobiert (Dropbox funktioniert einfach zu gut als dass ich da großen Drang für Änderungen verspühre), aber ich glaub vor der nächsten Verlängerung bei Dropbox könnte ich mir das mal angucken. Eine Suse-Kiste irgendwo hosten (oder den Server auf Ubuntu oder Debian zum Laufen bekommen) sollte nicht das grösste Problem sein und ich stoße schon an die Grenzen der 50G Option von Dropbox. Was ich nicht gefunden habe ist der Zugriff auf ältere Versionen von Dateien - hab aber auch noch nicht die recht umfangreichen Handbücher durchgeguckt.
AdBlock for Safari - mit Safari 5 kann man jetzt Ads blocken. In diesem Fall ist eine Chrome Extension nach Safari portiert - scheintbar sind die recht ähnlich (beide basieren ja auf JS + HTML5 als Technik).
Racket Released - PLT Scheme hat einen neuen Namen und ein neues Release. Und ist immer noch die coolste Scheme Umgebung.
kenkeiter's ryfi - geblogmarkt für später. Ein Server in Ruby, der mit EyeFi Karten zusammenarbeiten kann und es so ermöglicht mehr mit Fotos zu tun als sie nur zu speichern. Damit könnte man dann automatische Syncs to der eigenen Cloud bauen oder andere Spielereien.
Plac: Parsing the Command Line the Easy Way - interessante Bibliothek zum Parsen von Parametern für Python-Tools. Deutlich kompakter als andere Bibliotheken. Parameter werden per inspect automagisch aus definierten Funktionen abgeleitet.
Python Package Index : Baker 1.1 - und noch eine weitere Alternative eines mehr deklarativen Kommandozeilenparsers.
Aeracode :: On Django And Migrations - South core libraries wandern in der nächsten Zeit möglicherweise in den Django core (vielleicht mit Target Django 1.4). I approve. Die Basis für Migrationen schon im Django core zu haben wäre nicht nur für Migrationen hilfreich, sondern auch für Projekten in denen höhere Dynamik in den Datenmodellen gefordert ist - mein derzeitiger Hack mit sqldiff und einigem selbstgestrickten ist eben nur genau das: ein Hack. Wird wohl Zeit mir South mal genauer anzugucken (bisher nur grob reingeschaut, aber was ich gesehen habe gefiel mir) und zu überlegen, ob ich nicht schon jetzt meinen Hack auf eine etwas leistungsfähigere Basis stelle.
Oppugn.us: Where The Rants Go - Zed Shaw über Flash. Fuck, yeah.
HackageDB: berp-0.0.1 - jemand programmiert einen Python 3 Compiler und Interpreter in Haskell. Zumindestens rein intellektuell ganz interessant.
Fossil: Fossil Home Page - der Autor von SQLite, meinem bevorzugten Werkzeug für alles was Daten lokal speichern muss, hat auch ein eigenes verteiltes Versionierungssystem (ala Mercurial oder Git) gebaut. Und es hat gleich noch ein integriertes, verteiltes Wiki und ein integriertes, verteiltes Bugtracking mit dabei. Das ganze basiert natürlich auf SQLite als Backend zur Speicherung der Daten und hat einige interessante Eigenschaften. Durchaus mal wert anzugucken, zumal seine Installation nahezu perfekt ist: einfach ein fertiges Executable in den Pfad kopieren, das wars schon. Yep, Versionierung, Wiki, Bugtracking, CGI für Weboberfläche - alles in einem einzigen Executable. Kompakt ist es auch noch. Beeindruckend.
ikiwiki - und weil ich gerade mal wieder bei bare-bones Projekten bin: ikiwiki könnte recht interessant sein, es nennt sich selber "Wiki Compiler". Im Prinzip einfach ein Haufen Wiki-Seiten in Textfiles, verwaltet mit einem Versionierungssystem und einem Tool, welches automatisch statisches HTML produziert. Dazu noch eine Reihe von Plugins, mit denen man diverse Erweiterungen vornehmen kann (unter anderem erlaubt es Markdown und auch reStructured Text als Wikisprache und hat Blogging Plugins).
daemon 1.0 - der erste der üblichen Verdächtigen für Unix-Daemonen mit Python.
pyquery: a jquery-like library for python - unbedingt mal angucken, denn das ist etwas das mich schon die ganze Zeit nervt, die Libraries zum Zugriff auf XML-Daten in Python sind etwas primitiv. Und jQuery mag ich sehr, dessen Zugriffsmuster find ich einfach ausgesprochen praktikabel.
python-daemon 1.5.5 - und der zweite der üblichen Verdächtigen (der hier ist schon fast sowas wie offiziell, zumindestens orientiert er sich an einem PEP) zum Schreiben von Unix-Daemonen mit Python.
Spring Python - keine Ahnung was es wert ist, ich hab bisher Spring unter Java nicht benutzt (naja, benutze ja Java sowieso eigentlich nie, höchstens mal die JVM), aber man liest ne Menge positive Kommentare über Spring. Hier hat jemand die Ideen nach Python übertragen - gibt sogar ein Buch darüber. Ich weiss allerdings nicht, ob ein Framework für eine bondage-and-discipline Sprache sich so gut auf eine hoch-dynamische Sprache wie Python portiert. Könnte man sich in einer ruhigen Stunde aber mal angucken.
Turkmenbashi 1.0.0 - eine Library um Unix-Daemonen zu schreiben. Bringt ein paar mehr Features mit als die anderen üblichen Verdächtigen (daemon und python-daemon).
Clojure - datatypes - was mir an Clojure so gefällt: pragmatische und kompakte Lösungen für typische Probleme in der Programmierung. Clojure 1.2 wird die Möglichkeit einführen, bessere Beschreibungen von Datenstrukturen mit darauf definierten Funktionalitäten zu haben. Und zwar keine Monsterkonstruktion wie CLOS oder andere Lisp-OO-Erweiterungen, sondern recht schlanke Konstrukte die auch wieder gut auf die Hostumgebungen (JVM und CLR) passen. Schaut schon ganz interessant aus. Der Nachteil von all den Veränderungen in Clojure: Bücher sind schneller veraltet als sie gedruckt werden können ...
Rubinius : Use Ruby™ - bin zwar nicht der große Ruby-Fan, aber von Rubinius (Ruby-in-mostly-Ruby) ist als 1.0 Version raus. Und die verschiedenen Projekte, Ruby auf eine größtenteils in Ruby gebaute Plattform mit LLVM unten drunter zu bringen, macht mich immer noch neidisch. Ich hätte sowas gerne für Python ... (ja, ich kenne Unladen Swallow und PyPy - aber beide sind noch meilenweit von einer ernstzunehmenden Version entfernt, leider)
Street View: Google belauschte offene WLANs - genau da steckt ja das Problem mit Streetview. Nicht in den reinen Fotos. Sondern in dem gesamten Programm - die Integration verschiedenster Sachen in einem großangelegtem Scan. Die Kombination mit den ganzen Datenbanken, die Google schon hat. Die Zusammenführung verschiedenster Informationsquellen, rein aus der Geek-Sicht als "boah, ey, watt haben wir da an Klamotten, jetzt holen wir doch mal alles raus was geht". Oder anders formuliert: überlegt euch einfach mal, die Autos würden nicht Google gehören, sondern dem Staat. Und das Programm, die Datenbanken und die Informationssammelwut wäre nicht ein Unternehmen in Amerika, sondern eben unser Staat. Würde euch die Ansammlung von Informationen und Daten dann genauso gefallen wie Streetview? Wärs der Staat, gäbe es wenigstens den Anschein einer demokratischen Kontrolle dieser gigantischen Datenbank.
alienscience's leiningen-war - interessantes Plugin für Leiningen, das Build-Tool in und für Clojure. Liefert Kommandos die schnell und unkompliziert .war Files erzeugen, die z.B. für Deployment auf die Google App Engine genutzt werden können.
hiredman's lein-gae - Dokumentation im Prinzip nicht existent, aber es liefert ja auch nur ein einfaches Kommando, welches einem die war-Struktur für ein Google AppEngine Projekt vorbereitet und das project.clj anpasst. Eine weitere Möglichkeit, mit Clojure Programme für die AppEngine zu bauen.
Licenser's lein-search - und ein kleines Plugin, das die Suche nach Modulen und deren Versionen auf die (Leiningen) Kommandozeile holt.