Linkblog - 17.12.2009 - 31.12.2009

neo4j open source nosql graph database - die vorhin genannte Graphen-Datenbank für Java. Sieht recht interessant aus für die Situationen, in denen relationale Datenbanken zu starr und unflexibel sind.

pjstadig's tim-clojure-1.0.0 - ziemlich cooles Projekt welches mittels Terracotta (im Prinzip eine distributed Map für Java) ein verteiltes Environment für Clojure implementiert. Objekte mit passenden Metadaten werden automatisch auf alle diesem verteilten Environment angeschlossenen Clojures verteilt - und das tuts für nahezu alle Objekte die in Clojure definierbar sind.

IPhone Remote - Plex - und das iPhone wird dann zur ultimativen Fernbedienung.

Kanex Mini DisplayPort to HDMI 1080p Video with Digital Audio Adapter - auch geblogmarkt, weil die billigsten großen Monitore sind ja nunmal HDMI fähige Fernseher.

Plex Media Center for OS X - mal geblogmarkt, weil ich mir eventuell einen kleinen Mediaserver mit einem Mac Mini bauen möchte. Bei den Bergen an digitalen Fotos die ich mitlerweile habe, wären automatische Diashows auf einem großen Monitor vielleicht mal ganz nett.

Privacy of 3.5 Billion Cellphone Users Compromised – GSM Code is Broken | ProgrammerFish - tja, das wars dann für GSM, mithören leicht gemacht. Wie der Artikel korrekt sagt: es hätte schon lange Updates zur Verschlüsselung von GSM geben müssen, das ist schlicht Schlamperei im Design der Technik, das Updates auf die Verschlüsselung nicht von vornherein eingeplant waren. Wird interessant zu sehen wann das im größeren Rahmen die Welle macht und die Telekom-Unternehmen gezwungen sind etwas zu unternehmen.

Flugzeug-Attentäter muss mit 40 Jahren Haft rechnen - "soll der Vater - ein angesehener ehemaliger nigerianischer Minister und Bankier der US-Botschaft - mitgeteilt haben." - und hat er auch aus ehemaliger Ministerarbeit 20 Millionen die er dringend ins Ausland schaffen muss? Ich mein, kein Wunder, wenn nigerianischen Ex-Ministern und Bankiers nicht geglaubt wird bei all dem Nigeria-Spam .... (die Realität liefert halt immer noch die besten Stories)

Bundestagspräsident missfällt Regierungskurs - hey, CDU-Politiker werden doch normalerweise erst dann laut und deutlich kritisch, wenn sie politisch keine Rolle mehr spielen (siehe Geisler)? Was ist denn in den Lammert gefahren?

Moscow ML Home Page - hatte ich erstaunlicherweise noch nicht. Ist ein kleiner SML Bytecode-Compiler der mitlerweile den vollen Sprachumfang und die Standardlibrary implementiert. Deutlich schlanker als das große SML/NJ und braucht auch weniger Ressourcen als SML/NJ oder MLton. Gerade für kleine Tools sehr brauchbar (und auf dem Mac mit MacPorts installierbar - genauso wie aber auch SML/NJ und Poly/ML, den zwei anderen großen ML Compilern).

neatx - NX Server in Open Source von Google. NX gefällt mir ja ausgesprochen gut, aber der kommerzielle Server ist halt mit nur zwei parallelen Sessions in der Freibier-Version doch etwas eingeschränkt. For future use at work.

openduckbill - automatischer Directory-Sync mit rsync und einem Python-Daemon (kann lokal, über NFS oder SSH syncen). Ganz interessant wenn man mehrere Verzeichnisse gleich halten will, aber nicht unbedingt direkte NFS-Mounts will oder braucht (z.B. weil es über Berechtigungsgrenzen mit unterschiedlichen Userdomains gehen soll).

Poly/ML Home Page - mal verlinkt, weil Poly/ML oft über der Existenz von SML/NJ und MLton ignoriert wird. Eventuell auch als Alternative zu MosML nutzbar, denn Poly/ML ist recht fix, liefert aber native Code der auch gut für standalone-Tools zu nutzen ist. Wobei da natürlich MLton nochmal auftrumpft, da es mit der Optimierung über das gesamte Programm zwar lange für den Compile braucht, aber wesentlich kleinere Executables produziert.

Standard ML of New Jersey - und weil keine Liste von ML Compilern ohne den Grandfather of SML vollständig wäre, hier noch der letzte Link. Schon etwas betagt, aber sicherlich immer noch eines der am besten ausgebauten Systeme.

Fuzzy Hashing and ssdeep - liefert Hash-Werte für Files die ähnlich sind, wenn die Files selber auch ähnlich sind. Kann benutzt werden, um partiell gleiche Files aufzufinden (also z.B. Code-Reuse in Sourcecodes oder unterschiedliche Versionen eines Dokumentes etc.).

Home of pHash, the open source perceptual hash library - perceptual hashing liefert ähnliche Hashes für visuell ähnliche Files. Also sowas wie fuzzy Hashing für Bilder oder Filme. phashes von Bildern zum Beispiel ändern sich nur minimal wenn das Bild minimal geändert ist. Je größer die Differenz der Bilder, je größer die Differenz der Hashes.

Kulturstaatsminister kritisiert Smartphone-Apps der ARD - Herr Naumann meint also, der öffentlich-rechtliche Rundfunk hat die Aufgabe die saublöde Strategie des Springer-Verlages zu unterstützen? Was für eine bescheuerte Vorstellung ist das? Wir zahlen Gebühren für den öffentlich-rechtlichen Rundfunk und haben da ja wohl durchaus als Gebührenzahler ein Interesse, den von uns finanzierten Rundfunk auch auf von uns nutzbaren Geräten zu empfangen. Ob der Springer-Blödsinn ein Erfolg wird oder nicht ist mir da komplett egal. Aber so war es ja schon immer, auf der einen Seite über Subventionen lamentieren und jammer wie schlimm das alles ist, auf der anderen Seite dann mehr oder weniger verdeckt die eigenen Freunde dann fleißig unterstützen. Man muss denen, die einem die Schmiergelder zahlen, ja warscheinlich auch ab und zu was zukommen lassen? Wieso sich aber ausgerechnet ein Kultusstaatsminister für sowas kulturloses wie die Springerpresse in die Bresche wirft ...

MLton Standard ML Compiler (SML Compiler) - MLTon wird ja für Ur/Web benötigt, es gibt netterweise einen Binary-Download für OS X der auch brauchbar funktioniert, wenn man die GnuMP library über MacPorts installiert hat (von dort kann man auch die mhash library installieren, die andere Voraussetzung für Ur/Web). MLton ist auch alleine schon ein interessantes Projekt, da es ein Standalone-Compiler für ML ist, welcher sehr gute Optimierungen (dafür aber auch extreme Laufzeiten für den Compiler) besitzt.

Ocsigen - sieht aus wie etwas zu Ur/Web vergleichbares, das auf der OCaml Toolchain und der Sprache OCaml aufbaut. OCaml hat einige sehr nette Eigenschaften, das könnte also auch interessant sein. Allerdings macht das Projekt einen mehr Baukasten-Eindruck mit mehreren zusammenspielenden Teilen, wie gut die Integration ist, muss sich da erst zeigen. Bei Ur/Web begeistert mich die Tatsache, das ich wirklich nur mit einer Handvoll Files direkt eine Webanwendung zusammenstellen kann, ohne großen Overhead. Auch die Installation aus dem Source von Ur/Web ist simpler, durch die geringe Zahl an Abhängigkeiten. Andererseits ist Ocsigen direkt in Debian verfügbar, was die Installation natürlich deutlich vereinfacht.

The Ur Programming Language Family - interessante funktionale Programmiersprache mit integriertem XML Templating und Persistenz. Das Ziel ist es die komplette interaktive Webanwendung in einer Sprache zu schreiben. Datenmodell in der gleichen Sprache wie Templates. Alles abgesichert mit Typdeklarationen und Typinferenz - z.B. gibt es einen Funktor, mit dem aus einer in Ur geschriebenen Tabellendefinition automatisch eine komplette Administrationsoberfläche für diese Tabelle generiert wird, alles mit Absicherung gegen Code-Injection und andere übliche Angriffsszenarien. Die Sprache selber orientiert sich sehr stark an ML, übernimmt aber einige Features aus Haskell (speziell die Monads und das mächtiger Typsystem). In einigen Punkten erinnert es mich stark an Scala von den Ideen her - gute embedded languages für SQL und HTML kombiniert mit einer mächtigen funktionalen Sprache. Allerdings erzeugt der Ur Compiler direkt object code (und JavaScript für die Client Seite) und nicht Code für eine virtuelle Maschine. Und die Runtime hat keine Garbage Collection, sondern aus dem Code abgeleitetes Memory-Management (was Speicherverhalten mehr deterministisch macht). Das ganze basiert auf MLTon, einem sehr gut optimierenden ML Compiler. Irgendwie erinnert mich vieles an dem Projekt an Django - nur eben nicht dynamisch getypt, sondern statisch. Könnte durchaus interessant sein.

Web Authoring System Haskell (WASH) - nur der Vollständigkeit halber auch verlinkt, es ist vergleichbar zu Ur/Web und Ocsigen, nur halt mit Haskell. Aber wirkt irgendwie noch mehr Stückwerk als aus einem Guss.

December 25th - "Happy Birthday to those of you born on the 25th! Sorry you get kinda shafted by the overlap with christmas." - fuck, yeah!

Mail::RFC822::Address - "The grammar described in RFC 822 is suprisingly complex. Implementing validation with regular expressions somewhat pushes the limits of what it is sensible to do with regular expressions, although Perl copes well"

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.

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.

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.