Archiv 24.12.2009 - 9.1.2010

phpMyID - simple kleine PHP Bibliothek zum Einrichten eines eigenen privaten OpenID providers.

TidBITS Entertainment: "If Monks Had Macs" Available for Free - eines der seltsamsten Projekte aus älterer Mac-Zeit. Allein deshalb interessant weil man sehen kann wie damals von manchen Leuten Hypercard benutzt wurde (läuft heute auf Runtime Revolution und damit Plattformübergreifend).

[tw] : Building a Codeless Language Module with BBEdit 8.5 and (Ir-) Regular Expressions - weil ich immer wieder danach suche, hier eine Anleitung wie man die codeless language modules für BBEdit und TextWrangler baut. In der neuen Version können die nämlich regular expressions. Tipp: die regular expressions in der grep Suche von BBEdit/Textwrangler ausprobieren, dann sieht man ob sie auch korrekt auf einem Source funktionieren.

Wikipedia:Articles for deletion/Ejabberd - und wer sich den ganzen Schwachsinn der Wikipedia Blockwarte mal antun will: die Diskussionsseite über den Löschantrag von Ejabberd im Dezember. Nur so zur Erklärung: Ejabberd wird unter anderem von Facebook für deren XMPP Support von Facebook-Chat benutzt ...

Aasee (Münster) – Wikipedia - "Das Baden im Aasee ist gegenwärtig verboten und wegen der schlechten Wasserqualität, insbesondere in den heißen Sommermonaten, auch nicht zu empfehlen. Allerdings gibt es Bestrebungen, die Wasserqualität zu verbessern. Hauptprobleme sind die durch Überdüngung sich massenhaft vermehrenden Blaualgen, aber auch Colibakterien. Hautkontakt mit dem Aaseewasser kann im Sommer zu Reizungen führen, beim Verschlucken kann es zu lebensgefährlichen Erkrankungen kommen. Außerdem wird die Sicherheit durch die geringe Wassertiefe gefährdet, die durch auf dem Grund liegende Fahrräder an manchen Stellen zusätzlich beschränkt wird." - manche Dinge muss man einfach unkommentiert stehen lassen ...

maven-scala-plugin - maven-scala-plugin - weil Maven zwar hirnverdrehend ist, aber immer noch besser als Ant. Und niemand will die ganzen vielen Dependencies von Hand verwalten ...

SQLiteJDBC - noch ein JDBC Treiber für SQLite

SQLiteJDBC - weil ich ein SQLite Fan bin (wenns zu komplex für simple Textfiles ist, ist SQLite die nächsthöhere Stufe), und weil ich mit Scala und Clojure rumspiele, könnte ich das hier mal brauchen.

Fehlerhafte Sicherheitschips: 30 Millionen Bankkarten vom 2010-Fehler betroffen - SPIEGEL ONLINE - Nachrichten - Netzwelt - na toll, wegen der Idioten sind jetzt EC Karten und Kreditkarten in Automaten plötzlich Probleme. Und wegen der dämlichen Umstellung der meisten Banken auf V-Pay anstelle Maestro ist das Abheben von Geld im Ausland (bin demnächst mal wieder in Russland) mit der EC-Karte eh nicht mehr möglich, weil für diese Visa-Deppen Europa an den Grenzen der EU aufhört und die Banken ja nur auf ihre eigenen Gewinnmargen gucken und nicht auf den Komfort für Kunden. Was bringts schon eine EC-Karte zu haben, mit der man bei 9.5 Millionen Geldautomaten weltweit Geld abheben kann ohne Probleme? Völlig überbewertet. Und weil ich wegen Automatenfähigkeit jetzt auch noch eine neue Kreditkarte brauche, ist die warscheinlich dann auch aus einer defekten Charge und ich steh dann im März in Russland und kann gucken wie ich an Geld komme. Und für den ganzen Bockmist, den das Pack verzapft, bezahlt man dann auch noch Gebühren.

Fragen und Antworten zur Bankkarten-Panne - oh, toll, es wird wieder auf den Magnetstreifen umgestellt. Klasse Idee, denn der wird ja bei den V-Pay EC Karten nicht mehr vollständig beschrieben, weshalb die Karten nur in Automaten funktionieren, die den Chip benutzen. Super Idee - ich komm also potentiell vom Regen in die Traufe, nur weil diese blöden Bänker meinen ein paar Cent spaaren zu wollen.

Python Package Index : promise 0.2.1 - ziemlich cooler bytecodehack für Python der mittels Dekoratoren Funktionen als "pure" oder "constant" deklariert (oder ein paar andere) und dadurch Optimierungen von Python-Code ermöglicht. Speziell teure Lookups können so vermieden werden wenn man dem Compiler zusichert, das innerhalb einer Funktion z.B. Builtins oder benamste Funktionen sich nicht dynamisch ändern sondern konstant bleiben.

FleetDB - kleine In-Memory Datenbank mit Persistenz über ein append-only Transaktionslog. Das Protokoll besteht aus einfachen JSON Arrays. Implmentiert in Clojure, aber durch das JSON-Interface für beliebige Sprachen einbindbar (man braucht halt nur eine JSON Bibliothek und Zugriff auf Sockets).

generator_tools - weil man immer mal wieder auf die Situation stößt Generatoren in Python wegspeichern zu wollen (z.B. wenn man Continuations oder Coroutinen mittels Generatoren simuliert und diese als State eines laufenden Webworkflows in einem Webframework benutzt), mit diesem Modul (hack auf Bytecode-Introspection aufbauend) geht es eingeschränkt. Alleine schon interessant wegen der Einblicke die in den Interpreter gegeben werden.

Introduction to Concurrent Programming with Stackless Python - weil manchmal einfach eine sehr große Menge Microthreads die geeignete Abstraktionsebene ist. Wie man ja in diversen Erlang-Programmen gut sehen kann. Stackless liefert ähnliche Abstraktionen, oder noch eher vergleichbar mit den Actor-Libraries in Clojure und Scala (also im Prinzip das Erlang Actor Modell ohne Verteilung über mehrere Rechner). Das GIL bleibt natürlich weiter ein Problem, weshalb Manycore nicht brauchbar unterstützt wird, jedenfalls nicht ohne Programmierung dafür (über multiprocessing zum Beispiel).

Matasano Security LLC - Chargen - If You're Typing The Letters A-E-S Into Your Code, You're Doing It Wrong - interressanter Artikel (wenn auch in einer etwas seltsamen Präsentationsform) über typische Probleme bei Nutzung von Cryptographie für SSO in Websystemen. Einfach "ich verschlüssel das Cookie und dann ist alles gut" tuts eben nicht ...

MetaPython Documentation - eine der Sachen die mich immer wieder von Python zu Lisp bringen sind die netten Lisp Makros, mit denen man elegant embedded DSLs für verschiedene Zwecke bauen kann, die sich gut in die Hostsprache einbinden. Mit MetaPython kann man sowas vielleicht mit Python hinbekommen. Zumindestens sind alle Bauteile da.

Study shows viral SSIDs could be creating a massive wireless botnet Tech Sanity Check TechRepublic.com - und noch etwas mehr über die viralen SSIDs und eine kleine Liste von SSIDs die in dem Zusammenhang aufgetaucht sind. Bin drauf gestoßen weil eine Freundin eines der Netze (hpsetup) bei sich in der Nähe hat und sich wunderte, woher die SSID kommt.

Viral SSID - WLAN/Wireless Security Knowledge Center - interessant. SSIDs von WLAN Netzen als Angriffsvector für Computer.

OpenSimulator GForge - weil ich gerade mal wieder mit OpenSim rumspiele, hier findet man haufenweise Projekte rund um OpenSim.

Hg-Git Mercurial Plugin - sollte eigentlich den Zugriff auf GIT-Repositories mit Mercurial erlauben, scheint aber irgendwie im Moment nicht zu tu n - ich krieg jedenfalls nur Fehler. Aber erstmal for future use geblogmarkt.

Daring Fireball: The Tablet - "I am not predicting that Apple is phasing out the Mac. (On the contrary, I’ve heard that Mac OS X 10.7 is on pace for a developer release at WWDC in June.) Like all Apple products, The Tablet will do less than we expect but the things it does do, it will do insanely well. It will offer a fraction of the functionality of a MacBook — but that fraction will be way more fun. The same Asperger-y critics who dismissed the iPhone will focus on all that The Tablet doesn’t do and declare that this time, Apple really has fucked up but good. The rest of us will get in line to buy one."

hgsubversion - da man ja immer mal wieder auf SVN trifft und sich dann oft ärgert, das man nicht das Arbeitsverzeichnis zwischen Releases wechseln lassen kann, kann man einfach hgsubversion benutzen. Damit wird ein komplettes SVN Repository in ein lokales Mercurial-Repository gespiegelt aus dem man dann problemlos seinen Arbeitsbereich bestücken kann mit Mercurial-Mitteln. Auch gut wenn man Patches auf ein SVN Projekt verwalten will, da die Patchqueue von Mercurial da allen SVN-basierten Techniken überlegen ist.

Datenschützer kritisieren "Elektronischen Einkommensnachweis" - und wieder eine unsinnige Datensammelaktion die nur dazu führen wird, das andere Stellen diese Daten für völlig andere Zwecke haben wollen. Was geht den Staat an, ob ein Arbeitnehmer Abmahnungen bekommen hat oder "Fehlverhalten" zeigt (was dann ja sowieso eine Auslegungssache des Arbeitgebers ist)? Was geht den Staat an, ob und wie lange ein Arbeitnehmer gestreikt hat? Das Datentöpfe gegen Missbrauch nicht gesichert sind, sollte ja nun mitlerweile zur Genüge bekannt sein. Und das jegliche Datenansammlungen den Hunger von anderen Behörden wecken, ebenso.

duelinmarkers's clj-record - ein Persistency Framework inspiriert von Active Records (dem ORM von Ruby on Rails), aber halt in Clojure und mit einem mehr Lisp-like API. (das war jetzt sehr viel Denglisch in einem Satz!)

mattrepl's clojure-neo4j - und hier ein Interface zu Neo4J, einer Graphen-Datenbank für Java, mit der komplexe Datenstrukturen recht leicht auf Platte gespeichert werden können. Sieht für simple Persistenz in Programmen ganz interessant aus.

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.

Bei Nacht

Bei Nacht

Bei Nacht

Blaue Stunde

Blaue Stunde

Blaue Stunde

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.