Archiv 1.5.2011 - 14.5.2011

Stadtspaziergang mal wieder

Selber Tag wie der Stadthafen, einfach nur etwas früher und in Schwarzweiß. Auch mit der M8 und dem C-Biogon 2.8/35 gemacht.

Rund um den Stadthafen

Einfach nur abends mit der M8 spazieren gegangen und am Hafen ein paar Bilder in der späten Dämmerung gemacht.

Writing Plugins for gedit 3 with Python. Schaut so aus als ob Gnome 3 tatsächlich eine recht generische Schnittstelle für Python-Scripting bekommt. PyGTK war zwar auch schon da, aber das ist einfach nur eine GUI Lib. Jetzt wird aber über GObject und Friends gearbeitet und damit sind weitaus mehr Elemente ansprechbar. Gedit ist übrigens ein recht netter grafischer Editor, der unter Linux durchaus als Alternative zum unter OSX gerne genutzten BBEdit oder TextWrangler genommen werden kann.

Python Interpreter by Noam Gat -- Unity Asset Store. Und das hier ist eher was für meine privaten Spielereien: ein Plugin, welches in Unity3D eine interaktive Python Shell einbindet. Irgendwie reizt mich Unity3D immer wieder wenn ich es auftauchen sehe. Zumal mitlerweile der Einstieg frei ist (leider ist der Sprung zu Pro - das einige essentielle Tools wie einen Profiler oder Unterstützung für externe Versionierung anbietet - doch ziemlich heftig)

micromongo — micromongo v0.1 documentation. Auch mal angucken, micromongo liefert einen minimalen ORM für MongoDB Server. Wobei ich da allerdings mal gucken müsste, ob es nicht mitlerweile bei django-nosql auch schon Unterstützung für MongoDB gibt, dann müsste ich nicht eine andere ORM Syntax benutzen - allerdings ist micromongo wirklich ziemlich schlank und basiert nur auf pymongo, also z.B. nett für kleine Webservices, weil man nicht einen Haufen Module installieren muss.

execnet v1.0.9 documentation. Müsste ich mir auch mal angucken, es ist im Prinzip eine Library zur Verteilung von Funktionen über ein Netzwerk von Instanzen - kein volles map/reduce oder ähnliches, mehr sowas wie ein besseres RPC. Speziell interessant um zum Beispiel eine normale cpython Front mit einem Compute-Backend auf Basis von PyPy zu benutzen (oder umgekehrt dem PyPy-Server ein numpy+scipy Backend in CPython für Datenanalyse zu verpassen).

Read the Docs. Kannte ich noch garnicht - ein Webdienst wo man verschiedenste Dokumentationen über eine einheitliche Oberfläche lesen kann. Und seine Dokumentationen für Projekte hosten kann. Und auch gleich verschiedene Versionen von Dokumentationen zu Projekten.

"When you choose an eventually consistent data store you're prioritizing availability and partition tolerance over consistency, but this doesn't mean your application has to be inconsistent. What it does mean is that you have to move your conflict resolution from writes to reads." via Mochi Labs - statebox, an eventually consistent data model for Erlang (and Riak). Auch ausserhalb Erlang interessant, denn das Problem ist genereller Natur - Datenmodelle für Datenbanken mit Transaktionen können nicht einfach auf eine eventually-consistent Datenbank wie Riak (oder Cassandra) transportiert werden. Der Grund liegt eben darin, dass Konflikte erst beim späteren Lesen auffallen, da sie vorher ja sozusagen noch "unterwegs" sind.

pmundkur/odisco. Eine Implementierung für Map/Reduce nach dem Disco Worker Modell in Objective Caml. Sowas gibts auch schon für Python. Falls ich mal wieder mit OCaml rumspielen will.

Überlegungen zu Datenschutz, Kontrollverlust und anderen Dingen

Von der Spackeria, von Aluhüten und vom Kontrollverlust - Die wunderbare Welt von Isotopp. Lesenswerte Betrachtung von Datenschutz, Datenspuren, der zwangsläufigen Ansammlung von Datenmengen und der Unvermeidbarkeit der Zugänglichkeit und Auswertung dieser Daten.

Ich selbst sitze immer zwischen den Stühlen der Aluhüte und Spackeria - einerseits will ich eine Datenvermeidung und habe meine Probleme mit der Datensammelwut an manchen Stellen, andererseits bin ich techniknah und -begeistert und bin dadurch automatisch in vielen Datentöpfen angesammelt. Und bin mir absolut bewusst, wie viel über mich online ermittelt werden kann, wenn jemand das alles zusammenführt.

Ich sehe genauso wie Isotopp es in dem Artikel darstellt ein massives (warscheinlich zwangläufiges) Versagen des gesetzlichen Datenschutzes - sehe selber aber eine gewisse Differenzierung zwischen Daten die in freiwilligem Kontext der Nutzung von technischen Diensten anfallen (auch wenn diese Daten vielleicht vom Benutzer nicht direkt bemerkt werden) und Daten die im staatlichen Umfeld gesammelt werden.

Der Staat legt Datensilos nur unter dem negativen Aspekt an - eine staatlich angelegte Datenbank ist immer wieder unter dem Aspekt der Generalverdächtigung aufgebaut. Der Staat sammelt nicht die Daten der an Visaverfahren beteiligten Personen um denen zielgerichtete Informationen und Dienstleistungen rund um Visaverfahren zukommen zu lassen - der Zweck ist alleine die Strafverfolgung. Nur werden damit alle an Visaverfahren beteiligten Personen automatisch des Terrorismus und anderer Verbrechen verdächtigt - denn sonst bräuchte man deren Daten ja nicht zu erfassen. Die Exekutive des Staates hasst die unordentlichen Bürger und misstraut ihnen zutiefst, deshalb müssen diese kontrolliert werden.

Ein privatwirtschaftlicher Haufen an Daten hat ein wesentlich banaleres Ziel - marktwirtschaftliche Ausnutzung. Das ist, so verrückt es vielleicht für manche klingen mag, mir deutlich lieber. Google wird die Daten nicht nutzen um meine politische Gesinnung negativ auszulegen und mich auf eine No-Fly-Liste zu legen, weil ich den Staat kritisiere - die wollen mir nur besser platzierte Werbung unterschieben. In gewisser Weise kann man sich auf das reduzierte Blickfeld von Kapitalisten verlassen, es ist wesentlich positiver beeinflusst als das der Politiker. Datensätze sind potentielle Geschäfte - nicht potentielle Attentäter.

Aus diesem Grund finde ich die derzeitige Aktivität diverser Landesdatenschützer im privatwirtschaftlichen oder sogar direkt privaten Bereich (Abmahnung von Blogs für die Nutzung von Google Analytics) lächerlich bis peinlich, wenn sich die gleichen Datenschützer nicht gegen Projekte wie sie im Innenministerium oder anderen staatlichen Stellen hochkommen stemmen.

Wie kann ein Datenschutzbeauftragter erwarten ernst genommen zu werden, wenn er sich laut über die im iPhone abfallenden Lokationsdaten aufregt und gegen Apple poltert, aber gleichzeitig keine Anstalten macht diese durchgedrehte EU-Kommissarin zu stoppen, die Pläne für eine EU-weite, verdachtslose Vorratsdatenspeicherung hegt, die gegen unser Grundgesetz verstoßen würden (genauso wie die in Berlin ausbaldowerte Vorratsdatenspeicherung ja schon in Karlsruhe gescheitert ist)?

Reinteract könnte für alle Zahlenfresser und Grafikspieler interessant sein, sofern sie von Python keine Pickel kriegen: eine Implementierung von Worksheets wie man sie von Mathematika und Sage kennt, nur als direkte Python-Anwendung auf Basis von PyGTK. Man kann Python-Source reinhacken und ausführen, älteren Source nachträglich editieren und sein Output im Worksheet wird automatisch aktualisiert. Downloads auch für OSX verfügbar. Leider ist PyGTK kein 1st-class citizen der Mac Umgebung - es sieht einfach nur grausig aus mit den halb-defekten Controls und die Useability ist leider auch nicht wirklich OSX-like. Irgendjemand könnte das mal nach Cocoa portieren.

A successful Git branching model » nvie.com. Nicht ganz uninteressanter Artikel über verteilte Versionsverwaltung und Branching/Merging. Ok, geht speziell auf git und dessen Kommandos ein, aber die Übersichten und Überlegungen treffen in vielen Punkten genauso auf Mercurial zu und in den Abweichungen sind sich die Probleme ähnlich genug, dass der Artikel trotzdem lesenswert bleibt.

counterclockwise - Counterclockwise is an Eclipse plugin helping developers write Clojure code. Und wenn man sich eh Eclipse auf die Platte kippt, ist vielleicht ein Clojure Plugin auch nicht uninteressant, damit man seine tägliche Ration Klammern bekommt.

Typesafe Stack ist eine Distribution von Scala (2.9.0) und Akka (1.1, ein Actor-Framework für Scala mit diversen Tools zur Programmierung von verteilten Lösungen in Scala) zur einfachen Installation. Zusätzlich wird da noch auf sbt und Scala IDE for Eclipse (Beta der Version 2 nehmen, da diese komplett neu ist und die 1er nicht mit Scala 2.9.0 tut und auch nicht besonders gut ist) als Ergänzung hingewiesen. Installer gibts für Windows, OSX und Linux (man kann natürlich auf allen auch irgendwie selber installieren, aber mancher mag ja lieber normale Installationswege). Und wer will kann dort Support kaufen - und der Laden gehört Odersky, dem Scala-Erfinder und JVM-Sprachen-Guru. Eigentlich könnte Odersky auch gleich noch sein Buch über Scala-Programmierung als PDF mit reinwerfen (in der ersten Auflage ist das auch frei).

LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #1/3. Und nicht nur was undefiniertes Verhalten in Sprachstandards ist, sondern auch was die Motivation dahinter ist und was es für Kompilerhersteller bedeutet.

Wieder Kontrollen an deutsch-dänischer Grenze - ganz tolle Leistung für ein Gründungsmitglied der EU nur zur Befriedigung von rechtspopulistischen Spacken den Schengenraum kaputt zu machen..

"In den aktuellen AGB sichert sich Twitpic das Recht zu, die Bilder, die Nutzer über den Dienst veröffentlichen, weiterzuverwenden." - und zwar auch kommerziell, und den Partner hat sich TwitPic gleich schon mit WENN besorgt. via Twitter-Bilder: Verwirrung um Twitpic - Golem.de. Das ist also wieder einer der Dienste die man besser nicht verwendet, denn natürlich erhält der Urheber der Bilder kein Geld für die Verwertung.

RaptorDB kling ganz interessant, ein klassischer Key/Value-Store für .NET der auf MurMurHash aufbaut und vor allem auf Performance und Storage-Stabilität ausgelegt ist. Könnte für den einen oder anderen Zweck ganz sinnvoll sein, speziell da es auch sauber mit Threading zusammenarbeitet.

App Engine Go Overview. Ehrlich gesagt fänd ich es ja spannender wenn Google mal vom veralteten Python 2.5 wegkäme. Aber nunja, statt Python 2.7 oder einer JVM Sprache kann man jetzt mit Go die AppEngine programmieren. Gleichzeitig haben sich aber Preise und Bedingungen geändert, wär also wohl besser erstmal zu gucken ob es sich überhaupt lohnt. Go kann man nämlich auch genauso gut auf seinem eigenen Root Server benutzen ...

Metaowl ist life!. Uiuiui, gerade gemerkt, am 16. Juni steht der 6. Geburtstag der Meta-Eule an! Da sind mittlerweile fast 8700 Beiträge drin gesammelt. Und inzwischen hat sich auch der automatische Cache der Beiträge gelohnt, denn das eine oder andere Blog (zum Beispiel ist meine alte muensterland.org Adresse ja schon länger futsch) ist dann doch mal verschwunden, aber die Inhalte (zu mindestens die Texte) sind noch abrufbar. Selbst mehrere Serverumzüge hat das ganze unbeschadet überlebt.

Microsoft Near Deal to Buy Skype for Nearly $8 Billion - WSJ.com. Urks. Skype ist ja schon alleine ziemlicher Murks (leider für mich notwendiger Murks), aber wenn der jetzt noch von Microsoft "verbessert" wird, wirds ja ganz lustig ...

The Ark In Space: Manul – the Cat that Time Forgot. Eine frühe Art von Katzen, seit Millionen von Jahren im Prinzip unverändert. Also sowas wie ein lebendes Fossil in Plüsch.

bconstantin / django_polymorphic. Warum finde ich das erst jetzt? Das ist eine sehr nette Sache für Django-Projekte mit vererbten Modellen - sobald man Zugriffe auf eine gemeinsame Modell-Klasse macht, erhält man bei Django nur Instanzen der gemeinsamen Modell-Klasse - bei Django-Polymorphic aber erhält man Instanzen der konkreten Unterklassen. Im Prinzip wird der ORM dadurch mehr zu einer Objekt-Datenbank. Dürfte allerdings etwas zulasten der Performance gehen, da mehr SQL-Abfragen erzeugt werden.

obensonne / hg-autosync. Eine Erweiterung für Mercurial, die automatische Syncs zwischen Arbeitsverzeichnissen über ein zentrales Repository realisiert. Kann manuell als Kommando ausgeführt werden oder im Daemon-Modus (dann wird das einfach per Intervall zyklisch durchlaufen). Damit kann man sowas wie ein kontrolliertes Dropbox machen - nur die aufgenommenen Dateien werden synchronisiert. Wobei ich anstelle der Intervall-Lösung lieber eine Kombination von inotify und xmpp Notify hätte - dadurch würde der Daemon nicht ständig anspringen. Aber sowas könnte man daraus vielleicht sogar bauen. Update sowas gibts schon.

Kirk Tuck: Approval. Tacit Approval. Implied Approval and "Street Photography.". Weils auch etwas ist, das mich immer wieder ins Grübeln bringt: wie mit Streetphotography umgehen? Bei mir passiert es nicht so oft - ich fotografiere eh meistens keine Menschen (oder nur als Beiwerk), zum Teil liegt das aber auch einfach daran, dass es mir unangenehm ist, einfach jemanden zu fotografieren. Ist irgendwie einfach nicht so mein Ding.

Mixing it up: when F# meets C#. Da man ja nie in einem abgeschlossenen Raum programmiert, sind die Verbindungen zwischen Sprachen recht wichtig - und besonders auf Plattformen wie .NET und JVM. Die Abbildungen von F# Datentypen auf C# Datentypen und die Nutzung dieser sieht recht interessant aus. C# Daten von F# nutzen ist ja trivial, aber umgekehrt gibt es schon einige Besonderheiten. Eine Ähnliche Situation gibt es ja auch bei Scala und Java.

philikon / weaveclient-chromium. Hmm, ein Mozilla Sync Client als Erweiterung für Chrome. Leider ist nirgendwo richtig angegeben wie man das installiert und einige Kommentare im Netz deuten darauf hin, dass es mit neueren Versionen wohl nicht mehr stabil läuft. Aber vielleicht trotzdem mal reingucken wenn ich irgendwo überzählige Zeit finde. Damit könnte ich dann nämlich z.B. Chrome auf Mac oder Linux mit Firefox Mobile auf Android verbinden. Da auf Android der normale Browser ja nichtmal mit Googles eigenem Desktop Browser syncen kann (was echt peinlich ist), wär das ja vielleicht was.

birkenfeld / karnickel. Ziemlich schräges Teil: Makros auf AST Level für Python. Allerdings in einer Form, die dann doch eher an C Makros erinnert - also einfache Expression-Makros (und recht stark limitierte Block-Makros). Vor allem fängt man sich all die bösen Probleme eines solchen unhygienischen Makrosystems ein - wie zum Beispiel Namenskonflikte zwischen makro-lokalen Variablen und äußeren Variablen. Ist auch eher einfach nur der Beweis das es geht und was man mit dem in Python mitgelieferten AST Modul machen kann.

dyoo/moby-scheme. Noch eine interessante Sache für Android: ein PLT Scheme (also Racket) Dialekt und eine passende Toolchain um aus Racket Advanced Student Language + World Primitives (ASL ist ein schon recht weit gehender Scheme-Dialekt in Racket und die World Primitives sind für reaktives Programmieren in Scheme) erstellte Anwendungen in JavaScript laufen zu lassen und diese dann zu Androit-Anwendungen zu bündeln. Also Programmierung von Android-Handys in einem reaktiven Scheme-Dialekt. Oder noch kürzer: Klammern für Android.

Baarle-Hertog. Ich glaub da muss ich einfach mal hin weil es so schräg ist. Ein Ort, der in Teilen in Belgien und Niederlande ist. Klingt irgendwie nach "The City and the City" von China Mieville.

Blurb Plug-In For Adobe Photoshop Lightroom 3 | Blurb. Wow, das klingt echt gut - die Bücher sind preislich eine echte Alternative zu denen aus iPhoto und die verfügbaren Optionen klingen auch gut - und selbst die Versandkosten sind bei normaler Priority-Mail nicht wirklich problematisch. Muss ich mir echt mal angucken, denn im Moment muss ich ja immer meine Fotos nach iPhoto durchschieben. Ausserdem erlaubt Blurb auch gleich die Fotobücher online zu verkaufen (wenn es mal nicht nur rein private Bücher sein sollen).

Computer Science and Biology Come Together to Make Tree Identification a Snap. Für alle, die nicht wissen was da für ein Baum im Garten steht, oder die - wenn sie denn mal den Baum vor lauter Wald sehen - wissen wollen wogegen sie denn da gerannt sind.

Wochenmarkt. Noch viel bunter.

Der Farbenrausch auf dem Wochenmarkt bei Sonne ist einfach klasse. Und die Sony NEX-3 ist mit dem 2.8/16mm zumindestens bei Sonnenschein gar nicht so schlecht. Ich hoffe aber trotzdem, dass bald das Zeiss 1.7/24mm kommen wird, von dem man Gerüchte hört - denn der Sensor kann viel mehr als die Linse liefert. Und irgendwie hab ich den Eindruck, manuelles Fokussieren mit der M8 macht mir nicht nur mehr Spaß, sondern trifft auch besser.

Münster. Bunt.

Einfach nur eine Reihe von Bildern von Spaziergängen in Münster, unsortiert und ohne große Kommentare.

Acta: Lobbyisten wollen Acta-Prüfung durch den EuGH verhindern. Wo kämen wir denn da hin, wenn wir es wagen würden die Rechteabzocker und ihre Machenschaften zu überprüfen, oder die ausgekungelten Verträge von Gerichten prüfen zu lassen. Ganz besonders wenn Experten schon jetzt sagen, dass er in wesentlichen Punkten nicht dem EU-Recht entspricht.

Uni Bayreuth: Guttenberg hat absichtlich getäuscht. Nun ist es offiziell. Es ist alles nur geklaut. Warum allerdings bei so einem Debakel den beiden Leuten, die ja diese Doktor"arbeit" begutachtet haben, nicht näher auf die Finger geguckt wird, ist schon seltsam. Denn wie bitte soll ein Doktorvater und ein Zweitgutachter eine Doktorarbeit begutachten ohne sie zu lesen? Oder sollten die wirklich das Teil gelesen haben, aber dabei weder bemerkt haben dass nix besonders beeindruckendes drin stand oder das alles nur abgekupfert war?

Ralf Jäger: SPD-Innenminister will "sorgenfreie" Vorratsdatenspeicherung. Wofür brauchen wir eigentlich noch die Union, wenn schon eine rot-grüne Regierung so bekloppt sein kann, die Vorratsdatenspeicherung zu wollen?

icylisper.in - jark. Hmm, wieder eine von vielen Lösungen für Clojure, die ein vereinfachtes Deployment von Clojure-Scripten ermöglicht, komplett mit persistenter VM und #! Unterstützung. Irgendwie werden das ein bischen viele in letzter Zeit.

Pygame Subset for Android. Huch - es gibt ein PyGame subset für Android. Nutzung ist etwas hakelig, weil es keine IDE gibt - man muss die Files auf der SD Karte (hmm - ein Nexus S hat keine SD Karte, wo landet das dort?) ablegen und anderweitig editieren.

android-scripting - Scripting Layer for Android brings scripting languages to Android.. Interessantes Projekt mit dem man diverse Scriptsprachen auf Android-Telefonen laufen lassen kann. Unterstützung für Shell, Python, Perl, Ruby, Lua, TCL und JavaScript sind schon dabei. Für mich ist natürlich besonders Python interessant. Vor allem weil die API von Android verfügbar gemacht wird - man kann also direkt mit den Sachen interaktiv oder gescripted rumspielen.

PayPal Money Module « Snoopy Pfeffer’s Blog. Der ursprüngliche Artikel, in dem Snoopy ein bischen mehr über die Erweiterungen gegenüber Adam Frisby's DTL PayPal Money Module beschreibt. Nicht mehr auf dem ganz aktuellen Stand was die Installation angeht, aber die Features passen noch.

SnoopyPfeffer/Mod-PayPal - GitHub. Sollte ich mir mal genauer angucken, damit kann man PayPal als Money-Modul in OpenSim benutzen. Wäre vielleicht interessant, wenn ich irgendwann meine OpenSim-Projekte wieder mal einboxen und weitergeben will. Baut auf OpenSim 0.7.1 auf, kann ich also erst ausprobieren wenn die neue Diva D2 raus ist (die schon in der Mache ist).

Tagbar, the Vim class browser. Scheint ein bischen ein aufgemotztes Taglist für VIM zu sein. Liefert hierarchische Sichten auf definierte Klassen, Methoden und Funktionen in einem Projekt.

ifttt / About ifttt. Klingt interessant: ein einfacher Event-Aktion-Mechanismus im Web, der verschiedene Channel (Facebook, Twitter, Email und so weiter) mit Aktionen verbinden kann - z.B. einen Tweet erzeugen wenn jemand dich auf Facebook in einem Bild tagged oder sowas. Wobei man da wahrscheinlich bei einigen Diensten seine Login-Daten herausgeben muss, was man nicht unbedingt für jeden Dienst tun sollte ... (noch Beta, Zugang nur nach Einladung) - ein paar mehr Details zu der Motivation und den Ideen dahinter auf dem Blog zu IfThisThenThat.

Scala 2.9.0 RC3 | The Scala Programming Language. Hmm, speziell die parallel collections klingen interessant - sozusagen map/reduce für Multicore auf lokale Datenstrukturen.

jQuery: » jQuery 1.6 Released. Apropos jQuery - neue Version ist raus. Diese .attr vs. .prop Änderung finde ich persönlich irgendwie ungut - sie könnte mich an ein paar Stellen beißen, wo ich direkt mit Input-Feldern arbeite (diverser Widget-Code in einer recht heftigen Django-Anwendung). Schön natürlich, dass es schneller wird - schneller ist fast immer gut.

stanlemon.net : jgrowl. unbedingt mal angucken, denn unsere handgestrickten Notifications sind einfach nicht so schick und stabil. jGrowl macht da einen deutlich netteren Eindruck, und als jQuery Plugin sollte es auch mit unserer jQuery Codebase nicht kollidieren.

the m8 metadata project. Informationen zu den EXIF Metadaten in Leica M8 Bilddateien. Sehr interessant vor allem wegen der Informationen zu der geschätzten Blende - dazu hat die M8 ja den ominösen blauen Punkt, über den das Umgebungslicht ermittelt wird und dann durch Vergleich mit der TTL Messung eine ungefähre Blende abgeleitet wird. Ich hatte mich schon gewundert, warum in Lightroom bei meinen Bildern sinnvolle Blendenwerte stehen ...

inotify - get your file system supervised. Mal für später vorgemerkt - ein Daemon, der Scripte automatisch bei Dateievents anwirft. Damit könnte man z.B. automatische Bilderimporte durch Upload aus der Dropbox realisieren.

Ettenheim: Vergabe Kleinkunstpreis: Georg Schramm sorgt für Eklat im Europa-Park. Naja, Georg Schramm ist halt ein Kabarettist mit Arsch in der Hose und nicht so ein Weichspühlbubi wie es den Herren und Damen im Europa-Park wohl lieber gewesen wäre. Aber wie heisst es so schön: wer die Hitze nicht verträgt gehört nicht in die Küche. Georg Schramm lädt man sich nicht für freundliche, nette Worte ein. Er ist der personifizierte Zorn. Und spricht als solcher Vielen (und ich bin einer davon) aus der Seele.