Archiv 11.12.2009 - 24.12.2009

The 25th Anniversary Edition of Little, Big, by John Crowley - nur noch 4 Monate bis zur Erscheinung! Eines der schönsten Bücher der fantastischen Literatur in einer Sonderausgabe für Bücherfans. Mit Reproduktionen von Grafiken von Peter Milton als Illustrationen.

Real World Haskell - das hatte ich noch garnicht gelinkt? Dabei ist das der komplette Inhalt von "Real World Haskell" im Web, dem O'Reilly Buch zu Haskell. Sollte ich mir mal in ein paar ruhigen Stunden (Tagen?) durchlesen.

Regierung hält sich Anhebung des Arbeitslosenbeitrags offen - nicht das ich was anderes erwartet hätte, aber die neue Regierung ist verdammt schnell bei ihren Wahllügen. Letztes Mal haben sie ein paar Monate länger gebraucht bevor ihre Wahlversprechen ad absurdum geführt wurden.

Socket Benchmark of Asynchronous Servers in Python - interessanter Artikel über die Performance und Skalierbarkeit auf hohe Hit-Raten verschiedener asynchroner Server in Python.

A Case of the MUMPS - The Daily WTF - aus aktuellem Anlass der Link mal fix gebloggmarked, denn den könnte ich in nächster Zeit möglicherweise brauchen ... (fragt nicht!)

HDR photo software & plugin for Lightroom, Aperture & Photoshop - Tone Mapping, Exposure Fusion & HDR Imaging for photography - könnte evtl. mal interessant werden und die Software gibts für Mac und Windows. Und ein Plugin für Lightroom zur Integration gibts auch.

Intersystems Caché -- Gateway to hell - TDWTF Forums - aus dem gleichen Anlass noch diesen Link gebloggmarkt.

Invent with Python - interessantes freies Buch über Python Programmierung. Unter anderem wird in Kapitel 16 PyGame herangenommen.

Panasonic Lumix GF1 Field Test — 16 Days in the Himalayas - sehr schöner Review mit viel Praxisbezug und guten Beispielfotos. Besser als die üblichen Pixelpeeper und Zeitungsabfotografierer.

WinMerge - falls man mal ein grafisches Diff/Merge für Windows braucht. Open Source.

Crowdsourced document analysis and MP expenses - in Django durch Ausgabenlisten von britischen Parlamentsmitgliedern wühlen. Interessanter Artikel über die Stolperstellen und Probleme eines solchen Projektes beim Guardian.

fabricate - interessantes build Tool, das aus den Kommandos für den Compiler automatisch ermittelt welche Abhängigkeiten bestehen und daraus dann bei Aktualisierungen nur die nötigen Aktionen ableitet. Makefiles sind hier ganz normale Python-Scripte, was eine ganze Menge interessanter Hacks ermöglicht.

Schnööööööö!

Schnööööööö!

Schnööööööö!

Building a Clojure Web application with Incanter, Compojure, and Leiningen « Data Analysis and Visualization with Clojure - sehr schön, vor allem weil dieses Beispiel nicht nur schön zeigt wie simpel man mit Leiningen und Compojure eine Webanwendung mit Clojure bauen kann, sondern auch weil es mal nicht die üblichen langweiligen Verdächtigen als Beispiel sind, sondern mal was ganz anderes. (tuts wegen einer Änderung von Apple am Java für 10.6 derzeit nicht unter OS X, die Leiningen-Leute sind aber wohl schon dran)

git.postgresql.org Git - postgresql.git/commit - die ersten Replikationsfeatures kommen in den PostgreSQL Tree und werden daher in 8.5 verfügbar sein. Klasse!

About Hypertable - sowas wie Googles Bigtable, nur als Open Source. Stark skalierbare Datenbank. Benutzt Thrift als Client-Protokoll und ist damit von sehr vielen Sprachen ansprechbar.

etherpad - der versprochene Code für EtherPad ist jetzt auf Google Code.

Haystack - Search for Django - und das ist dann die Einbindung von Whoosh in Django. Gibt noch andere, aber das hier sieht am weitesten ausgebaut aus.

InfoQ: Clojure 1.1 Adds Transients, Chunked Sequences for Efficiency - bei Clojure kommen im Moment die interessanteren Optimierungen und Überlegungen zu funktionaler Programmierung. Denn sie konzentrieren sich auf den wesentlichen Teil: Datenstrukturen. Ein oft vernachlässigter Bereich bei andern Sprachen - was bringt mir eine funktionale Sprache, wenn die mitgelieferten Datenstrukturen schlicht zu low-level sind? Clojure bietet Zugriff auf low-level Elemente aus Java, wenn aus Performancegründen nötig, aber auch high-level Datenstrukturen die sich wesentlich natürlicher verhalten in funktionalem Code. Und mit chunked sequences und transients jetzt zwei recht elegante Optimierungen für diese, die den Abstieg in die Java-Niederungen vermeiden helfen.

Leica X1 Review: 27. Conclusion: Digital Photography Review - da fragt man sich schon, wenn man die "Cons" durchliest, was sich Leica bei der Kamera gedacht hat. Klar, nicht vernichtend, die Kritikpunkte, aber wir reden hier von einer 2000 Euro Kamera. Da sind Sachen wie "Accurate manual focus impossible" und "Live histogram unreliable" oder "Camera locks up completely when buffer is full" schlicht nicht akzeptabel.

Mir war danach

Mir war danach

Mir war danach

Ten years of .NET - Did Microsoft deliver? • The Register - "COM has never gone away, and .NET developers who want to use new Windows 7 APIs, for example, have to use an interop library to do so."

Whoosh - Volltextindexing in reinem Python. Könnte für einige Projekte interessant werden.

Algorithmic Botany - in Common Lisp. Da gibts auch einen Link auf das Buch mit den Algorithmen. Gerendert wird mit klassischen Renderern, der Common Lisp Code erzeugt nur die Modellbeschreibung als Input.

Apparent Software blog » Blog Archive » “Is PayPal good for your microISV business?” A short PayPal horror story - Story warum man Paypal zwar als Kunde nutzen kann (der Käuferschutz ist ganz brauchbar), aber eigentlich nicht als Händler. Ist halt eBay und kein richtiger Paymentprovider ...

BERT and BERT-RPC 1.0 Specification - BERT sind Binary ERlang Terms - also das Format, welches Erlang auf die Reise schickt, wenn Messages benutzt werden (und intern mit term to binary gewandelt wird).

briancarper.net :: Clojure Reader Macros - very dirty. Wildes patchen der Clojure-Runtime zur Laufzeit. Aber ein nettes Beispiel wie man von Clojure problemlos in die aktiven Java-Objekte durchgreifen kann. Sollte man allerdings nicht in produktivem Code benutzen (also diese spezifische Anwendung sich darüber eigene Reader-Macros zu bauen).

IronPython - Release: 2.6 - damit ist IronPython auch auf dem aktuellen Stand der Python2 Reihe. Und angeblich soll mit wenigen Änderungen Django auch direkt auf IronPython laufen, allerdings hab ich da keine aktuellen Postings zu gefunden, nur welche aus 2008. .NET ist zwar nicht meine Lieblingsumgebung, aber auf der Arbeit werden wir das schon auf die Dauer wohl mal anschauen, einfach weil die Integration mit dem Rest der Systemwelt unter Windows damit einfacher sein dürfte als mit dem normalen CPython.

John Graham-Cumming: Data Visualization Disease - "Averages are fun because any fool can calculate them, but pity the fool who averages without thinking.".

mojombo's bert - und hier eine Bibliothek, die BERT in Ruby implementiert.

ProjectPlan - unladen-swallow - Plans for optimizing Python - interessanter Status über Unladen Swallow, die Python-Version die auf LLVM als JIT aufbaut.

Python Package Index : python-daemon 1.5.2 - weil ich es immer mal wieder brauche und dann immer wieder von Hand stricke: dieses Modul hilft dabei ein Python-Script in einen ordentlichen Unix-Daemon zu verwandeln, mit korrektem Forken und PID-File-Handling.

samuel's python-bert - und weil ich grade dabei bin, auch noch BERT in Python.

The Render Engine - Javascript Game Engine - da JavaScript mit modernen Browsern wie Safari 4 und Chrome (und Betas von Firefox) ja mitlerweile ernstzunehmende Performance liefert, kann man auch so verrückte Sachen machen wie Rendering-Engines für Spiele in JavaScript schreiben.

trotter's bert-clj - und jetzt noch eine BERT Implementation in Clojure

Making light - Wouter Brandsma hat von Ricoh eine GXR mit dem 50er Makro Modul als Teststellung bekommen und probiert die gerade aus.

Microsoft Acknowledges Theft of Code from Plurk - erst wird Microsoft erwischt wie es GPL Code klaut (und released das fragliche Tool jetzt selber unter GPL, was denen sicherlich gut gefallen hat) und dann wird Microsoft erwischt, wie es Code von Plurk klaut (und muss erstmal den Dienst einstampfen). Schon putzig, war Microsoft nicht der Laden, der sich immer so darüber echauffiert, das andere ihren Code illegal benutzen? Hmm ...

Widefinder 2 with Clojure - das Widefinder2 Projekt von Tim Bray liefert langsam sehr interessante Ergebnisse, hier einen Artikel darüber wie man Clojure so optimiert, das die Performance die bisher beste Scala und Java-Lösung schlägt (wobei die Java-Version natürlich trivial nachholen kann, da die meisten performancerelevanten Sachen in dieser Version auf Java-Libraries zurückgreifen). Ein schönes Beispiel, wie man in Clojure Low-Level-Optimierung einbringen kann für die Sachen, die wirklich wichtig für die Performance sind, aber trotzdem für den Rest des Codes die guten Highlevel-Mechanismen von Clojure behält.

Bug #387308 in Ubuntu One Client: “[Wishlist] Proxy Support” - Ubuntu One wird seit dem karmischen Koala standardmäßig ausgeliefert mit Ubuntu. Und benutzt die Proxy-Settings nicht. Bastelstube!

Code tutorial: make your application sync with Ubuntu One - Ubuntu One (der Dateien und Synchronisierdienst von Canonical für Ubuntu) benutzt intern CouchDB (und die Synchronisation ist auf CouchDB Replikation aufgebaut!) und dieses Tutorial zeigt, wie man Applikationen so umbauen kann, das sie mit CouchDB zusammenarbeiten. Beispiele sind in Python und nutzen auch einige Aspekte von DBUS (Gnome) mit, so das es generell ein recht interessantes Tutorial für Desktop-Programmierung unter Linux ist. Ich denke es ist eine gute Idee von Ubuntu One auf CouchDB Replikation zu setzen - das Gemurkse von MobileMe bei der Synchronisation sollte da deutlich besser in den Griff zu kriegen sein.

Damn Cool Algorithms: Log structured storage - kompakter Artikel über Speicherung von Daten auf Platte. In diesem Fall orientiert an den Techniken von log-basierten Dateisystemen, wie sie auch in Datenbanken Einsatz finden.

Hunger!

Hunger!

Hunger!

Intland now on Mercurial - Part 3: Giving new momentum to the Eclipse Mercurial Plugin | Intland Blog - könnte ich mir mal angucken, das offizielle Mercurial-Plugin für Eclipse ist ja doch weniger angenehm. Andererseits sind einige der Sprachenplugins für NetBeans (besonders das Python Plugin gefällt mir) doch deutlich besser als für Eclipse.

Maven - Guide to using proxies - weil ich es gerade brauchte, denn Leiningen (Build-Tool für Clojure) setzt auf Maven auf. Leider muss das in einem XML-File geändert werden, damit ist es nicht so leicht zu automatisieren. Ich muss mir dafür mal was brauchbares für Linux einfallen lassen, das bei Setting-Änderungen automatisch diverse Configs umschiesst.

Tutorial - clojars-web - GitHub - clojars will sowas wie CPAN für Clojure sein (und wird es auch immer mehr) und ist sehr simpel und eleganz mit Clojure und der Unterstützung von Leiningen zu benutzen.

EMBODY von Herman Miller - Chairholder News - die Aeron Stühle sind ja schon sauteuer, aber super gut. Der Embody kommt nochmal eine Runde besser. Hat mal jemand 1600 Euro über für mich?

Radio UserLand: Auf Wiedersehen, und danke für den Fisch - oder so ähnlich. Radio Userland wird zugemacht. Irgendwie schade - mein Blog startete ursprünglich mal mit Radio Userland, dann hab ich es mit dem Python Community Server selber gehostet (und auch anderen Radio Userland Usern da eine virtuelle Heimat gegeben), dann meinen eigenen Radio-Clone, den Python Desktop Server, geschrieben. So nach und nach verschwindet das aber jetzt alles aus dem Netz. Selbst Phillip Pearson hat seine PyCS-Sachen nach und nach vom Netz genommen.

Yeti programming language - sollte ich mir mal angucken, ein ML für die JVM. Scala bietet natürlich vieles davon ebenfalls und hat sicherlich im Moment deutlich mehr Drive. Aber ML fand ich schon immer recht interessant, weil die Sprache recht kompakt ist - und mit JVM-Anbindung gibt es die ganzen Java-Bibliotheken zum Rumspielen sozusagen gratis dazu. Wobei Yeti wirklich nur eine ML-style Sprache ist, nicht wirklich ML (deutliche Unterschiede in der Syntax).

Either Mark Zuckerberg got a whole lot less private or Facebook’s CEO doesn’t understand the company’s new privacy settings. - tja. Kalt erwischt. (bei mir sind die Sachen offen, weil mein Facebook Profil ja nur als Superaggregator dient, von daher fast nur öffentliche Inhalte sammelt und daher striktere Sicherheitseinstellungen darauf nicht viel Sinn machen)