Archiv 3.4.2011 - 14.4.2011

Re: Factor: XKCD. Wer einen Eindruck in eine der verrückteren Sprachen haben will - John Benediktssons Blog hat eine Menge an Beispielschnipseln in Factor, die üblicherweise direkt in der Factor REPL benutzt werden können (oder überschaubare Vokabularerweiterungen erstellen). Mich beeindruckt immer wieder die Kompaktheit von Factor-Code. Johns Code hat auch den Vorteil, das ich in der Regel gut verstehen kann, was da passiert - Slavas Code zum Beispiel ist da oft deutlich idiomatischer und dadurch kryptischer für mich. Liegt aber sicherlich auch daran, dass Slava in der Regel über Internas der Sprache schreibt, während John einfach kleine Spielereien beschreibt.

Deutlich erhöhte Strahlung in der Asse. Wieso glauben eigentlich immer noch Atomkraft-Vertreter die Atomkraft vertreten zu müssen, wenn wir nicht mal in der Lage sind ein Lager für schwach und mittel radioaktive Materialien wie die Asse sicher und ohne Probleme zu betreiben? Schliesslich ist das doch ein Lager in einem hochindustriellen Land, das nach Behauptung der Atomkraft-Vertreter die höchste Kompetenz bei Atomkraft habe. Wieso muss erst in Japan ein Reaktor abfackeln damit die Leute kapieren, dass unsere heile Atom-Welt gar nicht so heile ist? Wo wir doch die Probleme alle schon lange vor der eigenen Tür (und dahinter!) haben?

Akka Project. Und das hatte ich definitiv schon mal auf dem alten Blog, aber egal, im Fernsehen wird auch dauernd alles wiederholt. Und bei Akka hat sich ein Haufen getan in der letzten Zeit und es etabliert sich immer mehr als die zukünftige Plattform für ausfalltolerante Systeme auf der JVM. Viele Parallelitäten in den Ideen mit Erlang, aber eben mit der JVM-typischen breiteren Plattform (gibt einfach kaum was wofür es nicht irgendeine Klassenbibliothek für Java gibt und damit auch für Scala). Sehr interessant: Akka bringt eine Implementierung von Software Transactional Memory für die Java-Plattform.

Programming Scala. Hatte ich glaub ich schon mal, aber egal: das zweite online frei verfügbare Buch über Scala, über das ich heute gestolpert bin. Kann man ja auch gegenlesen mit dem anderen, ist aber auf ähnlichem Sprach-Stand (also vor 2.8).

ScalaQuery. Ja, Scala-Day heute. Eine der Sachen die mir bisher fehlten war eine gute Integration von Datenbanken, die von den DSL-Features und der Typsicherheit von Scala auch Gebrauch macht. Also nicht einfach nur per JDBC SQL durch die Gegend schicken, sondern sowas wie LINQ, nur eben für Scala. Das hier sieht schon recht nett aus.

Programming in Scala, First Edition. Und weil ich gerade Scala habe: die erste Auflage von Programming in Scala ist jetzt frei im Web verfügbar. Natürlich fehlt einiges das mit der aktuellen Scala-Version reingekommen ist (speziell die Container-Libraries sind ja doch anders in 2.8), aber um in die Sprache reinzulesen ist das trotzdem sicherlich ein guter Startpunkt.

Scala IDE for Eclipse. Hmm, so langsam scheinen die Werkzeuge sich dort zu entwickeln. Ich habe ja grundsätzlich nichts gegen Kommandozeilen und bin auf denen viel mehr zu Hause als in IDEs, aber für die allgemeine Akzeptanz von Sprachen sind IDEs dann doch recht praktisch. Und Scala ist immer noch eine der interessanteren Sprachen im JVM Umfeld, auch wenn es in der letzten Zeit recht ruhig darum geworden ist.

Why do I do what I do

Wenn ich das bloß wüsste ... (Existentialismus am Abend kuriert man am besten mit Guinness. Dosierung nach Bedarf.)

Männerspielzeug

Und ich fahr nicht mal gerne mit dem Auto ... (jaja, Münster, das Sylt Westfalens)

USB Port

Uli Stemmler Band am Hafen. Seht ihr was ich gemacht hab? Haha. Ok, bin ja schon ruhig. Macht aber netten Sonntag-Nachmittag-Jazz, die Truppe. Foto mit der Sony NEX-3 und dem Zeiss C-Biogon 2.8/35.

agronholm / jython-swingutils. Noch keine Idee was ich damit machen könnte, aber falls mal die Java-Welt interessant ist, könnte das als GUI Bibliothek interessant werden (Swing für Jython).

Code rant: Message Queue Shootout!. Kein echter Shootout und nur eine unvollständige Auswahl an Messagequeues. Aber trotzdem was interessantes als Ergebnis: wenn man Knoten hat, die schon eigene Persistenz und Transaktionslösungen haben, zwischen denen man nur maximal schnell Nachrichten schicken will - es gibt dann nichts besseres als ZeroMQ. Es ist - bedingt durch seine Architektur - schlichtweg die schnellste Lösung. Und wir reden hier von wirklich drastischen Unterschieden.

NOSQL Databases. Sehr gute Übersicht über alle möglichen verfügbaren NoSQL-Datenbanken. Guter Startpunkt wenn man sich über die verfügbaren Systeme und deren Ausrichtung und Implementierung infomieren will.

BBC News - Net giants challenge French data law. Ganz tolle Idee aus Frankreich, zwangsweises speichern von Klartextpasswörtern, damit die dann an jede dahergelaufene Behörde abgegeben werden. Wird doch bestimmt dem Bundesinnenfriedrich auch gefallen, wo der doch so wild auf alle Daten ist ... (Diskussionen auf reddit behaupten, bbc hätte die Sachlage falsch dargestelt, es ginge nur um die Speicherung von Accountdaten auch nach Schliessen des Accounts für ein Jahr - wenn ein Dienst das nicht macht, wird er nachträglich für Aktivitäten der nicht mehr identifizierbaren User haftbar gemacht - also nicht ganz das, was man aus dem BBC Artikel lesen könnte)

Warum die VISA-Warndatei eine Schweinerei ist bei Metronaut.de – Big Berlin Bullshit Blog. Die Visa-Warndatei betrifft mich direkt und persönlich. Meine Verlobte ist Russin, ihre Familie lebt auch weiterhin in Russland, Besuche werden wir aber trotzdem machen und bekommen wollen. Ich kann mich also schon mal von jeder Illusion von Datenschutz für mich und Juliana verabschieden. Natürlich hat ein Staat das Recht, sich vor Missbrauch zu schützen - aber Generalverdächtigung nur auf Grund der Nutzung von rechtlichen Möglichkeiten ist immer falsch. Und die Visa-Warndatei ist nichts anderes als die Generalverdächtigung von Bürgern, nur weil sie im Rahmen eines Visumsantrages mal vorkommen. Mit Rechtsstaat hat das nichts mehr zu tun.

visionmedia/asset. Nachdem ich schon pip (für Python Module) und jip (für Java-Libraries) hatte, hier ein analoges Werkzeug für JavaScript Bibliotheken. Also zur automatischen Installation von JavaScript-Libraries in node.js Projektverzeichnisse von der Kommandozeile aus.

jRumble | A jQuery Plugin That Rumbles Elements. Das neue Blink-Tag! (okok, gibt durchaus sinnvolle Anwendungen, z.B. wenn man ein Element auf der Webseite kurz anzeigen lassen will, dass dort was passiert ist - analog zu hüpfenden Icons im OSX Dock).

Python Package Index : pip 1.0. Der Vollständigkeit halber hier geblogmarkt, auch wenn pip für mich mitlerweile eh fester Bestandteil der Python Infrastruktur ist. Aber vielleicht hat der eine oder andere ja noch nicht mit pip rumgespielt, dann ist jetzt wohl der richtige Zeitpunkt gekommen. Man sollte es meiner Meinung nach immer zusammen mit virtualenv benutzen, denn dann kann man einfach für jedes Projekt genau die passenden Abhängigkeiten installieren und sauber von anderen Projekten trennen.

sunng87/jip. Im Moment mache ich nicht so viel mit Jython, aber jip klingt sehr praktisch: es ist ein Analog zu pip, aber für Java-Libraries. Also ein einfaches Kommandotool, welches die notwendigen Jar-Files runterlädt und an den richtigen Ort packt. Integriert mit virtualenv. Für mich deutlich angenehmer als zum Beispiel mit Maven oder ähnlichen Java-üblichen Infrastrukturtools rumzumachen.

Exploring Beautiful Languages: A quick look at APL. Einfach weil mich APL immer begeistert hat. Auch wenn ich nach eigenen Erfahrungen damit nie in die Verlegenheit geraten will, ein APL Programm warten zu müssen - für mich ist APL das Musterbeispiel für write-only Sprachen.

How I learned to stop worrying and write my own ORM. Ein bischen Hintergrundinformation warum Dapper entwickelt wurde und welche Problemfälle es löst - im Prinzip wird es dort eingesetzt, wo bisher aus Performancegründen direkte SQL Zugriffe über Linq "getunnelt" benutzt wurden, weil Linq2Sql dort ineffizient ist.

dapper-dot-net - Simple SQL object mapper for SQL Server. Könnte eventuell ja ganz interessant auf der Arbeit sein. C# bietet ja auch Linq an, aber nach deren Messungen scheint Dapper deutlich auf Performance getrimmt zu sein.

philikon / python-weave client ist fast noch interessanter als das andere Tool: eine Python-Bibliothek zum Zugriff auf Mozilla Sync. Damit könnte ich mir diverse kleine Tools bauen, die Links automatisch in Bookmarks einmischen oder aus dem Sync rausholen und in andere Bookmarkdateien reinwandern lassen. Oder wie wäre es mit einem Cronjob, der aus den Bookmarks aus einer speziellen Gruppe Links rausnimmt und automatisch ins Weblog postet? Lauter lustige Spielereien sind möglich ...

philikon / weaveclient-chromium. Noch nicht ausprobiert, es ist eine Chrome-Erweiterung die Mozilla Sync in Chrome und Chromium integriert. Damit könnte man endlich die Bookmarks zwischen Chrome und Firefox austauschen ohne über XMarks gehen zu müssen. Wenn jetzt noch jemand diese Extension auch für Safari baut, wäre ich glücklich - die Tatsache, dass ich zwischen den Browsern nicht vernünftig syncen kann, sondern jeder sein eigenes Süppchen kocht, ist hochgradig nervig. Mozilla Sync ist frei zur Nutzung und dahinter steht ein Laden, dem ich in dem Bereich deutlich mehr traue als allen anderen.

Bill Gates: “In toilets, we’re the kings”. Als Chef von Microsoft fand ich ihn nervig. Als Organisator seiner Foundation find ich ihn erstaunlich. Ich mach mir nix vor - er ist eine Ausnahme, andere Milliardäre sind warscheinlich weitaus weniger zu motivieren, aber egal. Einer ist ein Anfang. Und vielleicht ist es einfach nur der Nerd in ihm, der mit all dem Geld irgendwas machen will, einfach weil er garnicht nur wegen des Geldes und der Macht dabei war. Und das macht vielleicht dann auch das eine oder andere aus seiner Microsoft-Zeit erklärlicher - er hat wohl wirklich an seine Arbeit dort geglaubt. Nunja, wenn seine Stiftung weiter macht und Menschenleben rettet, dann verzeih ich ihm auch Windows. Ich muss es ja nicht benutzen.

Video LightBox - binden Sie Videos mit Lightbox Effekt in Ihre Internetseite ein!. Ich mach ja nix mit Video, aber sieht ganz interessant aus - das ist ein standalone Tool, welches die Files für die Video-Einbettung erzeugt und z.B. per FTP irgendwohin schicken kann. Mac und Windows Versionen.

Pipe ist ein Modul mit infix-Syntax für verkettete Funktionsaufrufe über potentiell lazy streams (intern sind das Generatoren). Im Gegensatz zu stream (hatte ich hier schon mal) ist es ohne Unterstützung von Parallelität, also einfach nur syntaktischer Zucker. Mir gefällt allerdings der von stream besser (also der Zucker) und die Parallelität von stream ist auch interessanter als nur eine etwas andere Syntax zu liefern.

Krümeltorte

Heute wieder nix gekocht, weil war ja gestern in Hamburg, aber dafür einen Kuchen gebacken. Ich mag Krümeltorte, unter anderem weil sie so trivial herzustellen ist. Das kommt rein (für eine 26cm Springform):

  • 300g Mehl
  • 200g Zucker
  • 150g Butter
  • 1 Ei
  • 1 Pack Vanillezucker
  • 1/2 Pack Backpulver
  • etwas Zimt
  • 250g Aprikosen (also kleine Dose)
  • etwas Preiselbeermarmelade (optional)

Die Zubereitung ist dann ziemlich einfach:

  1. Mehl, Zucker, Vanillezucker, Backpulver, Zimt - alles vermengen.
  2. Obst abtropfen lassen (den Saft mit Tonic Water und Eiswürfel gibt einen leckeren alkoholfreien Cocktail)
  3. Ofen auf 180C vorheizen
  4. die Butter heiss machen
  5. das Ei aufschlagen
  6. Butter und Ei in das Mehl+Zucker-Gemisch
  7. mit Dreimix und Knethaken durchkneten bis Krümeliger Teig entsteht (geht auch mit einer Gabel und von Hand, aber mit Dreimix ist es bequemer)
  8. 2/3 des Teiges in der eingefetteten Springform verteilen und am Boden andrücken, evtl. auch einen kleinen Rand machen
  9. mit Gabel ein paarmal in den Boden stechen
  10. Preiselbeermarmelade auf Boden des Teiges verstreichen
  11. Aprikosen drüber verteilen
  12. restlichen Krümelteig gleichmäßig oben drüber verteilen
  13. das ganze in den Ofen bei 180C für 45 Minuten
  14. rausnehmen und abkühlen lassen (nicht so gierig sein, auch wenns gut riecht)

Kann man gut Sahne drauf tun, oder auch einfach so essen oder Puderzucker drüber streuen (wobei es so schon einen ziemlich süßen Kuchen ergibt, also nicht übertreiben). Tipp: den Randbereich nicht zu dick lassen, sonst wird das hinterher ein recht harter Teil der sich schlecht schneiden lässt. Und natürlich kann man das Obst nahezu frei varieren, auch Apfelmuss statt Obst rein geht klasse, genauso wie natürlich Kirschen oder Pflaumenmuss (wird aber recht fest wahrscheinlich). Das schöne dran, fast alles kann man auf Vorrat im Haus haben und die Eier kann man ja vielleicht vom Nachbarn kriegen (ich hab halt nicht damit gerechnet, backen zu wollen, als ich Samstag noch schnell einkaufen war).

Sammelsurium aus Hamburg

War Samstag mal wieder in Hamburg - warum das schöne Wetter nicht in einer der schönsten Städte Deutschlands genießen. Die Bilder sind alle mit der Leica M8 und dem Elmar-M 2.8/50 gemacht, ausser dem letzten, das ist mit der Ricoh GRD II. Nix besonderes, einfach nur so ein Sammelsurium von dem was ich mir angeguckt habe. Und in Farbe, weil ich sie Juliana zeigen will.