Archiv 12.3.2011 - 6.4.2011

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.

Pängelanton

Der Karnevalsverein Pängelanton betreibt in Münster Gremmendorf ein kleines Eisenbahnmuseum und vor dem steht diese schwarz-rote Schönheit mit dem Baujahr 1902. Ich bin ja Eisenbahnfan und diese kleine Lok ist durchaus eine Rarität, die auch Besucher aus ferneren Gegenden zum Besuch motiviert. Foto mit der Ricoh GRD II gemacht.

markrendle/Simple.Data - GitHub. Sollte ich mir mal angucken, sieht ganz interessant aus - ein ORM für .NET.

Send in Münster mal wieder

In Münster ist mal wieder Send. Diesmal über eine Woche wegen der großen Fahrgeschäfte - das Riesenrad und die Achterbahn sind aber auch schon ziemlich beeindruckend. Man macht sich nicht so richtig klar wie groß der Send eigentlich ist, erst wenn man beim Aufbau die großen Fahrgeschäfte sieht und dann später beim fertigen Send das ganze drumherum wird einem das klar. Der Hindenburgplatz wird ja auch als eine der größten innerstädtischen Freiflächen Deutschlands gehandelt. Fotos übrigens wieder mit der M8.

Tuckesburg und alter Zoo

Die Tuckesburg ist der alte Sitz des Scharfrichters in Münster - und war später der Alterssitz vom Prof. Landois, dem Gründer des Münsteraner Zoos und dem Entwickler des Aasees. Hatte ich schon mal vor einiger Zeit, ist aber immer wieder ein nettes Motiv. Fotos mit der M8 und dem Elmarit-M 2.8/50

Basho: An Introduction to Riak. Müsste ich mir auch mal genauer angucken, hat eine recht saubere und einfache Architektur und alle Knoten im System sind gleichwertig (das ist ähnlich zu Cassandra). Das ganze ist hier in Erlang geschrieben, aber interessant ist die MapReduce-Schnittstelle: Funktionen können als JavaScript Code reingeliefert werden und die Kommunikation geht über ein simples JSON Interface.

HBase vs Cassandra: why we moved « Dominic Williams. Nicht ganz uninteressanter Blog-Post, der einen Vergleich von Hadoop/HBase mit Cassandra wagt und die verschiedenen Schwerpunkte herauszuarbeiten versucht. Sein Fazit: HBase ist mehr für Warehousing, Cassandra mehr für Transaction-Processing. Allein dadurch wäre sowas wie Brix noch viel interessanter, wenn es diese beiden Aspekte wirklich vereinen kann.

Brisk – Apache Hadoop™ powered by Cassandra | DataStax. Sollte ich auch mal beobachten, da verheiratet jemand Hadoop mit Cassandra als Backend. Dadurch werden Higher-Level-Layer aus dem Hadoop Projekt auch mit der hohen Performance von Cassandra nutzbar und vor allem mit dem freieren Update von Daten in Cassandra und dessen eventually-consistent-Modell.

HIVE: Data Warehousing & Analytics on Hadoop. Ein Punkt, der mich im Moment stark interessiert: Auswertungen, speziell BI, von großen Datenmengen. Hadoop liefert dafür Hive als Lösungsansatz. Zugriff auf HIVE kann nicht nur über Thrift geschehen, sondern auch über JDBC und ODBC.

Apache Thrift. Auch mal genauer angucken, im Prinzip etwas ähnliches wie Google Protocol Buffers, nur eben im Apache-Umfeld stärker vertreten. Dadurch in Ecken wie Hadoop oft als Weg der Wahl für den Zugriff von verschiedenen Sprachen auf Services vorgesehen. Ein kleiner Vergleich der beiden Protokolle. Mir gefällt, dass Thrift nicht nur die binäre Darstellung erlaubt, sondern auch eine JSON basierte Darstellung - dadurch wird die Integration der Thrift-APIs in Weblösungen einfacher, da JSON ja nunmal JavaScript native ist.

The Secrets of Building Realtime Big Data Systems. Darüber bin ich auf Cascalog und ElephantDB gestoßen: ein Vortrag des Programmierers der beiden Projekte über Große Datenbanken. Er schreibt auch gerade an einem Buch "Big Data". Könnte sehr interessant sein.

nathanmarz/elephantdb. Gleicher Autor wie für Cascalog, hier hat er auf Hadoop mit Clojure einen verteilten Key/Value-Store aufgebaut. Auch nicht uncool.

nathanmarz/cascalog - mal näher beobachten, eine Verheiratung von Clojure und Hadoop zur einfacheren Auswertung großer Datenbestände. Das Interessante an Cascalog: es greift Ideen aus Datalog auf und bildet in Clojure eine Abfragesprache für Hadoop Datenbestände.

JavaScript Quotations - interessanter Link über ein Metaprogramming-Feature für JavaScript. In diesem Fall für eine sehr interessante JavaScript-Implementierung: in F# geschrieben und für die CLR Welt, lauffähig unter .NET und Mono.

Microsoft Shuts off HTTPS in Hotmail for Over a Dozen Countries | Electronic Frontier Foundation - ein Schelm wer böses dabei denkt. Sicherlich purer Zufall, dass die Liste der betroffenen Länder sich wie die "Elite" der demokratischen Staaten liest. Die Verlogenheit von Großkonzernen wird eigentlich nur noch von FDP Wirtschaftsministern übertroffen.

Enterprise Java Development Tools | SpringSource. Muss ich mir mal genauer angucken, weils letztens um J2EE und EJB Alternativen ging, und das ja nun eine der bekannteren Alternativen ist.

Trinity - Microsoft Research. Muss ich mir mal näher angucken, klingt etwas wie verteiltes Redis (in-Memory Strukturen die persistiert werden) kombiniert mit einer Abfragesemantik die eher auf Graphbeziehungen aufbaut (vergleichbar in etwa zu RDF Triple Stores).

Programming, Motherfucker. Do you. speak it?

Why Cloud9 Deserves your Attention - browserbasierte IDE in Javascript auf Server und Client. Und Source der aktuellen Version auf github verfügbar.

Django-nonrel - NoSQL support for Django. Liefert einen ersten Ansatz in Django verschiedene NoSQL Datenbanken zu integrieren, und zwar auf Ebene des Django-ORM. Backends für MongoDB (nein Danke), AppEngine und Cassandra sind in der Mache. Besonders Cassandra interessiert mich im Moment.

WordPress › Really Static « WordPress Plugins. Mal weggeblogged, weil man damit direkt statische Seiten aus Wordpress generieren kann (ginge auch mit WP Super Cache und dessen directly cached pages, aber die werden dabei nicht automatisch aktualisiert) und vielleicht wäre das auf Dauer mal ein interessanter Weg. Ok, ich müsste wahrscheinlich auf einige Elemente verzichten, damit das ganze auch ohne "Artefakte" funktioniert - aber viele davon sind eh eigentlich verzichtbar. Zum Beispiel wäre eine Tag Cloud auf dem Stand des letzten Renderings eingefroren, wenn sie Teil der Seite ist. Genauso wie Angaben wie "letzte Kommentare" oder "letzte Posts". Dito mit Kalendern, die auf neueren Seiten mehr markierte Tage haben wie auf älteren Seiten. Das ist auch der Hauptgrund warum ich bisher immer wieder von baked Sites abgekommen bin - andererseits, sind diese Problemfälle für ein Blog wirklich wichtig?

Vundle 0.7 is out. Ich benutze ja normalerweise Pathogen, aber Vundle hat ein paar Eigenschaften die es doch recht interessant machen - vielleicht sollte ich doch mal damit rumspielen. Andererseits habe ich an meiner Vim-Installation schon länger keine Updates und Änderungen mehr gemacht. Aber da jetzt alle vim.org Scripts auf GitHub liegen, ist die GitHub-Integration von Vundle sicherlich sehr interessant.

Gefüllte Paprika im Tomatenbett

Klingt gut, oder? Schmeckt auch gut. War diesmal auch nicht so fürchterlich aufwändig, das Essen, allerdings muss man schon mit mehreren Töpfen und Pfannen (ok, ein Topf, eine Pfanne) rumwerkeln. In Meinem Fall war der Topf eine Kasserole, weil die Paprika wirklich riesig waren. Was ich reingetan habe:

  • 2 große Paprika
  • 250g gemischtes Hack
  • 100g Schafskäse
  • eine Handvoll Oliven (schwarz, natur, ohne Kern)
  • 6 Tomaten
  • Tomatenmark
  • ein halbes Bund Basilikum
  • 1 Zwiebel
  • 1 1/2 Knoblauchzehen

Die Zubereitung ist recht simpel, man sollte einen großen Topf oder eine Kasserole bereithalten, in der man die Paprika bequem aufstellen kann. Ansonsten ging es so:

  1. Zwiebeln kleinhacken, Knoblauch kleinhacken, beides auf einen Teller
  2. Oliven kleinhacken, auf einen Teller
  3. Tomaten kleinschnippeln, auf einen Teller
  4. Basilikum kleinhacken, auf einen Teller
  5. Ofen schon mal auf 200° einstellen, damit er vorheizen kann
  6. Pfanne mit Olivenöl heiß machen>
  7. Zwiebeln und Knoblauch in der Pfanne glasig braten
  8. Gehacktes hinzupacken, krümelig braten (so wie für Bolognese - einfach mit dem Pfannenwender immer wieder die Klumpen teilen)
  9. wenn Gehacktes schön gebraten und mit dem Zwiebeln und Knoblauch gemischt ist die Oliven rein
  10. Temperatur runter und etwas von den Tomaten rein (Menge so 1-2 Tomaten), etwas Tomatenmark rein, mischen, Deckel drauf, 5 Minuten kochen lassen, abschmecken mit Gewürzen (bei mir Oregano, Thymian, Pfeffer, Salz)
  11. Deckel runter, Temperatur etwas hoch, Schafskäse rein und gut untermischen, schmelzen lassen
  12. Wenn Schafskäse gut unter das Hack gemischt, die Platte ausstellen
  13. zwei Paprika die Köpfe abschneiden, Kerngehäuse raus, die "Rippen" raus
  14. die Paprika mit der Hackmasse füllen, die Köpfe (vorher dort auch Kerngehäuse und Stiel entfernen, bleibt im Prinzip nur ein Ring über) zudecken
  15. in den großen Topf die restlichen Tomaten und das Basilikum verteilen, die Paprika da reinsetzen
  16. Tipp: wenn die nicht stehen bleiben wollen, mit Rouladennadeln unten rein ein Dreibeinstativ für die Paprika machen, dann hält das
  17. das ganze in den vorgeheizten Ofen und 20 Minuten schmoren
  18. nach den 20 Minuten rausnehmen und auf Teller, die Tomaten und Basilikum mit einem Dreimix pürieren

Bei mir wie üblich mit Brot, aber da gehen ganz wunderbar Nudeln oder Reis dazu. Das ergibt übrigens nicht so einen puddingweichen Paprika, der sollte ruhig noch Biss haben. Und die Füllung ist nicht der übliche Betonklotz, sondern eher vergleichbar mit einer dicken Bolognese. Bei mir gabs dann noch ein Bier dazu, einfach weil das Wetter draußen ganz laut "Bier" gesagt hat mit der ganzen Sonne heute.

Adobe Photoshop Lightroom 3 * Exporting using Publish Services. Tja, Adobe hat Photoshop.com - und gerade erst dieses ausgeweitet. Und propagiert es als eine bessere Alternative zu Flickr. Wie ernst es Adobe damit ist, sieht man an den Publish Services in Lightroom 3. Es werden von Hause aus Facebook, Flickr und SmugMug angeboten. Selbst auf der Lightroom Exchange habe ich nichts zur Anbindung von Photoshop.com gefunden. Klasse gemacht, Adobe. Voll glaubhaft.

Datenschützer: Piwik statt Google Analytics - das ist doch mal ein Anfang, konkrete Vorschläge was Sitebetreiber denn machen sollen, wenn sie Statistiken wollen. Sollten wir uns auf der Arbeit wohl mal näher angucken, um es Kunden die nach Statistiken fragen zu empfehlen.

After Church Club

Endlich mal wieder geschafft am Sonntag in den Hot Jazz Club zu kommen. Tom's Anmoderation: "Heute mit mir, es gibt also Blues. Und nur Blues. Da könnt ihr euch garnicht wehren.".

Kiepenkerle (Kiepenkerls?)

Die Kiepenkerle sind ja sowas wie ein Wahrzeichen aus Münster. Die beiden hier waren vor der Lamberthi-Kirche als ich da vorbeispazierte. Der aus Stein ist immer da, der andere macht Stadtführungen. Hauptsächlich für Juliana fotografiert - den Kiepenkerl am Spiekerhof kennt sie schon. Und ja, ich weiss, eigentlich sind das keine Kiepenkerle, denn sie tragen ja keine Kiepe, sondern sind nur die Kerle.

Update: hab da mal den Kiepenkerl vom Spiekerhof mit drangepackt.

Türfiguren

Diese Türfiguren wurden von Berndhard Kleinhans geschaffen und befinden sich an der Überwasserkirche in Münster am Seiteneingang auf der Südseite. Aufnahmen mit der Leica M8 und dem Zeiss C-Biogon 2.8/35mm.

By adding extra code to a digital music file, they were able to turn a song burned to CD into a Trojan horse. When played on the car's stereo, this song could alter the firmware of the car's stereo system, giving attackers an entry point to change other components on the car.

via With hacking, music can take control of your car | ITworld.

Satellite Photos - Japan Before and After Tsunami - Interactive Feature - NYTimes.com. Slider nach links und rechts schieben.

Programming Languages - Progopedia - Encyclopedia of Programming Languages. Das war das Programmiersprachenwiki das ich letztens gesucht hatte als mal wieder in der Wikipedia der Löschwahn um sich schlug. Hatte ich glaube ich schon im alten Blog.

Instagram hat jetzt offizielle APIs. Ist ganz an mir vorbeigegangen. Damit könnte ich vielleicht auf Dauer mal an Tumblr vorbei kommen um meine Instagram-Bilder in die Seitenleiste zu bekommen. Andererseits tuts Tumblr in letzter Zeit ganz gut und warum was funktionierendes ändern (der Fluch jeglicher Weiterentwicklung - good enough).

pdict.py at master from segfaulthunter/sandbox - GitHub. Eine PersistentHashMap für Python - also eine funktionale Datenstruktur, welche keine Veränderungen zulässt, sondern eine neue Struktur mit minimaler Änderung gegenüber einer bestehenden Struktur mit Substruktur-Sharing zur originalen Struktur liefert. Eine recht interessante Implementierung. Gibt auch nähere Erläuterungen zu den Ideen dahinter. Und eine alternative Implementation der gleichen Idee.

ShutterSnitch. Interessante kleine App mit der man Bilder über WiFi auf dem iPad empfangen und automatisch mit Metadaten und Geocodierung versehen kann - könnte eine recht interessante Kombination mit einer EyeFi-Karte in meiner Sony oder meinen Panasonics sein (die M8 kann leider nicht mit EyeFi - der SD-Slot ist bei der M8 zu knapp für die EyeFi ausgelegt und der Metallbody blockt zu viel vom schwachen Signal). Einfach die Kamera koppeln, iPad in den Rucksack und rumlaufen und schnappschießen und zwischendurch das iPad als extra-großen Lichtkasten benutzen.

Rob Galbraith DPI: Alex Majoli points and shoots. Nur mal so als Erinnerung, dass eben der Fotograf die Bilder macht und nicht die Kamera. Also die Gestaltung des Bildes. Und ja, nicht immer ist "flache Schärfenebene" die Antwort auf "was macht ein gutes Bild aus".

HowTo: Using Radio2. Tja, ok, ich verstehe seine Motivation. Aber nunja - ich klicke auf das "Press This" Bookmarklet vo Wordpress und schreibe einen Satz - das Bookmarklet-Formular hab ich mit JavaScript angepasst und Custom Post Types (in diesem Fall Aside) macht den Rest. Und oben hab ich schon ein Linkblog - und einen eigenen Feed hat es auch. Und schnell ist das ganze ebenfalls, Enclosures sind auch fix machbar und Tagging geht auch gleich. Sorry, Dave, aber irgendwie hab ich das alles schon! Update: hab einfach mal einen Twitter-Account eingerichtet und schiebe da jetzt neue Posts rein. Mal gucken was so draus wird.

Threads sind ein Hammer, aber nicht jedes Problem ist ein Nagel

Wer mal herzhaft lachen will: Node JS and Server side Java Script. Da meckert jemand aus dem Java-Lager darüber, das Node.JS ja nun wirklich nicht ernstzunehmen sei und produziert doch selber gleich das beste Beispiel, warum sowas wie Node.JS (und viele andere Alternativen für Serverprogrammierung) existieren - denn der Java Code wird mit jedem Schritt länger und länger. Und selbst nach mehreren Iterationen für ein in Node.JS (oder z.B. mit gevent in Python) ziemlich simpel zu realisierendes Beispiel werden in den ersten Kommentaren gleich ein paar Fehler und Lücken im Java Code angesprochen.

Versteht mich nicht falsch - Java hat eine Menge von guten Lösungen für Programmierung mit multiplen Threads in der Standard-Library. Warscheinlich von allen derzeit verfügbaren Sprachen die größte Auswahl an Möglichkeiten mit multiplen Threads zu programmieren. Aber wie so oft im Leben: Threads sind nicht die Antwort auf alle Fragen der Parallelisierung. Besonders wenn es in die Richtung von hoher Request-Last geht, ist die Einschätzung in den Kommentaren das 20K Threads schon sehr hoch sind lächerlich - erzählt das mal den Programmierern von Eve Online, in der jedes Schiff in derem virtuellen Universum als Microthread modelliert wird.

Java ist als Plattform sehr interessant, eben weil es viele Low-Level-Libraries mitliefert mit denen man sehr interessante Sachen machen kann - und die hilfreich sind um vernünftige Highlevel-Konstrukte darauf aufzubauen. Zum Beispiel im Zusammenspiel mit Sprachen wie Clojure oder Scala wird dem Threadmonster einiges an Schrecken genommen. Aber manchmal ist die Antwort eben nicht der Thread, sondern asynchroner IO (sowohl bei Festplattenzugriffen und Netzwerkzugriffen) und die intensive Nutzung von Coroutinen oder Continuations.

Auch das Unverständnis der Java-Programmierer auf den Ansatz das Multi-Core Problem einfach mit mehreren parallelen Prozessen und Message-Passing zwischen diesen zu lösen ist in 2011 ziemlich seltsam - denn schließlich waren 2009 und 2010 die Revival-Jahre für Erlang (nicht vergessen, die Sprache existiert schon sehr viel länger) und gerade die zentrale Idee von Erlang ist ja das Netz- und CPU-übergreifende Message-Passing als Standard zu setzen um eine sehr einfache Parallelisierbarkeit und Skalierbarkeit zu bekommen.

Java-Programmierer erinnern mich immer wieder an die Cobol-Programmierer meiner Anfangszeit, die in jeder Sprache und jeder Programmierweise ganz gezielt die Sachen rauspickten und kritisierten, die in Cobol eben anders (und manchmal sogar vielleicht etwas einfacher) gelöst waren - aber dann gnadenlos auf die Schnauze fielen wenn sie damit reale Probleme ausserhalb der Cobol-Komfortzone lösen mussten.

Das Beste von Java ist die JVM und damit eine Plattform die gerade die Multiparadigmen und -sprachen Ansätze möglich machen mit denen man dann für Probleme die Werkzeuge einsetzen kann, die ihnen angemessen sind. Und selbst dann ist manchmal die Antwort trotzdem Node.JS oder ein anderer kleiner, schlanker, asynchroner Server. Denn selbst mit einer großen Sammlung verschiedenster Hämmer wird man sich für die Schraube trotzdem einen Schraubendreher holen.

Die Risiken der Technik kann man nicht abschaffen. Wohl aber den Umgang damit ändern. Anlagen wie Atomkraftwerke, die zu unfassbaren Schäden führen, sollte kein Staat betreiben. Und Menschen, die mit solchen Anlagen ihr Geld verdienen, wie unsere werte Atombranche, sind klar als verantwortungslose Lobbyisten zu brandmarken. Sie haben die Lage in ihren Reden noch im Griff, während hinter ihnen bereits die Reaktorhalle auseinanderfliegt

via Dieses Vertuschen und Verzögern ist ein unfassbarer Skandal: Die Methoden der Atomlobby - taz.de.

Minestrone für die ganze Familie

Tja, ich hab mich einfach geweigert weniger als jeweils ein ganzes Gemüse zu nehmen, und schwupp da war es dann doch eine ganze Menge. Also besser einen großen Topf bereithalten! Schmeckt aber verdammt gut, die Minestrone. Was ich reingepackt habe:

  • 1 Paprika
  • 1 Zucchini
  • 3 Tomaten
  • 3 Stangen Sellerie
  • 1 große Möhre
  • 3 kleine Kartoffeln
  • 100g durchwachsener Speck
  • Parmesan mit Rinde
  • 150g grüne Bohnen
  • 2 violette Zwiebeln
  • 2 Knoblauchzehen
  • 1/2 Bund Basilikum (frisch)
  • 1 Esslöffel Tomatenmark
  • eine Handvoll Oliven (schwarz, entkernt, natur)
  • 1l Gemüsebrühe
  • 50g Butter
  • Olivenöl
  • ca. 50g Spaghetti (kleingebrochen)

Die Zubereitung ist echt Arbeit und in der ersten Phase gibts nicht viel Ruhe. Und am besten die Gruppierung der Gemüse wie unten angegeben, denn so kommen die nacheinander in den Topf - es wird nämlich erstmal alles vorgebraten. Aber ansonsten ist es eigentlich ganz einfach:

  1. Speck würfeln und auf einen Teller
  2. Zwiebeln und Knoblauch würfeln und in ein Schälchen
  3. Kartoffeln, Sellerie, Möhren würfeln und in eine Schüssel
  4. Bohnen kleinschnippeln und in eine Schüssel
  5. Paprika und Zucchini würfeln und in eine Schüssel
  6. Topf aufheizen mit Olivenöl und der Butter
  7. Speck 2 Minuten darin anbraten (fleißig rühren!)
  8. Zwiebeln mit Knoblauch rein in den Topf und 2 Minuten braten (fleißig rühren!)
  9. Kartoffeln, Sellerie und Möhren in den Topf und 2 Minuten braten (fleißig rühren!)
  10. Bohnen in den Topf und 2 Minuten braten (fleißig rühren!)
  11. Zucchini und Paprika in den Topf und 2 Minuten braten (fleißig rühren! wenn der Arm sich anfühlt als ob er abfällt: das ist normal, weiterrühren!)
  12. Deckel drauf, Temperatur runter und 15 Minuten das Gemüse garen lassen, zwischendurch immer mal wieder umrühren
  13. Arm kann leider nicht ausruhen, denn jetzt werden die Tomaten gewürfelt und wenn gewünscht die Oliven kleingeschnitten (ich lass sie immer ganz bei Suppen).
  14. Bevor die 15 Minuten um sind die Oliven reinwerfen (so nach halber Zeit)
  15. Basilikum kleinschneiden
  16. wenn die 15 Minuten um sind die Gemüsebrühe in den Topf, umrühren
  17. Tomatenmark, kleingehackte Tomaten und Basilikum rein, abschmecken mit Pfeffer und Salz
  18. Parmesanrinde reinwerfen (ich bind die mit Küchengarn an, damit sie leicht wieder rauszufischen ist)
  19. aufkochen lassen, Temperatur runter und eine Stunde leise köcheln lassen (bei meinem Monstertopf reicht da ein halber Punkt am E-Herd)
  20. Parmesanrinde rausfischen und wegwerfen
  21. Spaghetti rein und 10 Minuten kochen lassen

Gegessen wird das ganze dann bei mir einfach mit Brot dazu. Man kann auch Sauerrahm in die Suppe tun, oder ganz italienisch Parmesan drüberreiben. Dazu ein Glas Wein.

Re: Factor: Google Charts - ich sollte wirklich mehr mit factor machen, immer wenn ich wieder mal sehe wie praktisch eine visuelle repl ist (in Factor können auch grafische Repräsentationen von Objekten eingebettet werden in die normalen Ausgaben, ähnlich wie bei alten Lispmaschinen) reizt es mich.