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.
Linkblog - 13.3.2011 - 14.4.2011
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.
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.
markrendle/Simple.Data - GitHub. Sollte ich mir mal angucken, sieht ganz interessant aus - ein ORM für .NET.
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.
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.
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.