Am Rande notiert ...

git-annex. Interessantes Plugin für git mit dem man nur die Metadaten von großen Dateien, aber nicht deren eigentlichen Inhalte in git verwaltet. Die Dateien selber werden als normale externe Files verwaltet, aber die Verzeichnisstrukturen und Verweise werden korrekt versioniert – und das ganze zusammen mit normal versionierten Dateien. Dadurch wird das Problem, dass git mit großen Dateien hat, umgangen. Und damit wird z.B. auch sowas wie ein Foto-Archiv auf git-Basis möglich.

Mumble. Ist zwar irgendwie lustig, wenn man seine Tipps für Software von einer politischen Partei bekommt, aber egal. Mumble ist sowas wie Teamspeak (oder auch ein entfernter Verwandter von Skype Gruppenchats oder Google+  Hangouts), nur halt open source und zum selber betreiben. Clients auch für OSX, Windows, Linux und iOS. Es gibt da übrigens auch Bemühungen, mumble als Alternative zu Vivox in OpenSim als Voice-System zu integrieren.

Sphero. Oh mann, das Teil will ich haben. Wieso gibts so viel cooles Spielzeug jetzt wo ich erwachsen bin? (wer nicht klicken will: Roboter in Kugelform mit präziser Steuerung und der Möglichkeit den zusätzlich als Controller einzusetzen – und gesteuert durch Apps auf dem Smartphone).

Ubuntu 10.04: Why is ksmd eating CPU cycles? | Interphero Miscellany. Ok, bin gerade bei meinem Server drüber gestolpert und blogmarke das mal für spätere Referenz. Bei kvm Einsatz taucht bei neuerem Ubuntu der ksmd auf, der eigentlich die Speicherseiten zwischen virtuellen Maschinen vergleicht und doppelte Seiten nur einmal speichert – das spart RAM, aber frisst CPU. Wenn man also kein over-commit beim Speicher macht, kann man den ruhig ausschalten.

Features | ownCloud.org. Hmm, jetzt fehlt nur noch iOS Zugriff auf die OwnCloud und ich glaub ich hab danach eine längere Installationssession vor mir. Ganz werde ich zwar nicht auf Dropbox oder ähnliches verzichten können (und wollen), aber evtl. reicht es schon um auf die freie Version von Dropbox zurückzugehen, wenn ich die großen Datenmengen nur noch auf meinem eigenen Server verwalte.

TypeQuery. Generische Funktionen für Python. Nur eine einfache Variante mit einem eingeschränkten Zielbereich, aber für manche Sachen durchaus überlegenswert. Derzeit noch single-dispatch auf das erste Argument, aber mulitple dispatch ist geplant. Im Moment also ziemlich identisch in der Funktion zu simplegeneric von PJE. Und sehr ähnlich zu meinem multidispatch, in welchem ich versuche das Modell der Clojure generic methods nachzubauen. Ich muss wohl wirklich mal wieder an multidispatch weiter arbeiten. Oder einfach mehr mit clojure-py spielen, da kann ich dann gleich „the real thing“ benutzen.

PostgreSQL: Documentation: 8.4: hstore. Aus der Reihe „Sachen die deine Datenbank kann, die du aber vielleicht nicht kennst“: Key-Value-Stores innerhalb eines PostgreSQL Datenfeldes. Oder auch poor-mans-object-notation. Oder einfach dann praktisch, wenn man lose strukturierte Daten ablegen will, aber nicht ständig das Schema anpassen will – das Schema sind dann die primären Daten für die Ordnung des Modells, die Abhängigkeiten, Kardinalitäten etc. – und das hstore Feld speichert dann die zusätzlichen Ausprägungen, die sich zum Beispiel durch fachliche Anforderungen dynamisch ergeben. Manchmal die bessere Alternative zu einer ausnormalisierten Property-Tabelle. Und das ganze ist schon seit den 8er Versionen drin (ist allerdings ein ladbares Modul).

TeamPostgreSQL – PostgreSQL Web Admin GUI Tools. Sieht gut aus, eine Weboberfläche für die Administration von  PostgreSQL Datenbanken, die an PGAdminIII heranreicht und nicht so spartanisch aussieht wie PHPPGAdmin. Allerdings hab ich Probleme auf Datenbanken aus einem Projekt zuzugreifen – es scheint nicht alles so ganz sauber implementiert zu sein, speziell bei der Behandlung von Sequences. Von daher kann ich noch nichts dazu sagen, ob es performant ist. Das ganze kommt komplett mit Java-Tomcat-Server daher, so das man es direkt lokal installieren und ausführen kann.

Map of Life. Interaktive Karte auf Basis von Google Maps, die die Verbreitung von Tierarten anzeigen kann.

Matasano Security – Matasano Web Security Assessments for Enterprises. Analyse von Kryptographie in JavaScript. Kurzfassung: Kryptographie in JavaScript ist in der Regel eine dumme Idee, da man das JavaScript aus einer nicht vertrauenswürdigen Quelle oder einem nicht vertrauenswürdigen Netz bezieht (würde man ihm vertrauen, wäre ja wohl kaum Kryptographie notwendig) und daher ein Henne-Ei-Problem besteht. In bezug auf das vorherige 0bin Projekt: dort ist die Kryptographie nicht eingebaut worden um den Benutzer zu sichern, sondern um den Betreiber des 0bin abzusichern – es ist also relativ egal für den Betreiber, ob die User sicher sind oder nicht, es geht dabei nur um „plausible deniability“ für den Betreiber. Anders sieht es aber aus, wenn anstelle SSL einzusetzen eine Verschlüsselung in JavaScript implementiert wird.

sametmax/0bin. Interessanter Ansatz die Probleme des pastebin-hostings zu umgehen. Bei pastebin-ähnlichen Sites ist ja das Problem im Hosting, dass User jeden Kram posten und der Server-Betreiber dann schnell in Regress genommen wird. 0bin versucht das Problem so zu verschieben, dass der Betreiber nicht wissen kann, was in den Pastebins steht, da sie verschlüsselt abgelegt werden und die Verschlüsselung durch den Client per JavaScript passiert. Das klappt natürlich nur, wenn die Richter dann auch akzeptieren, dass der Serverbetreiber nicht wissen kann, was da läuft – und nicht zum Beispiel argumentieren, er solle dann halt eine andere pastebin-Software installieren bei der er es wissen kann und ihn trotzdem verantwortlich machen. Sicherlich aber ein interessanter Ansatz, speziell die Idee, den Key für die Verschlüsselung in den hash der URL (also das nach dem # in der Adresse) zu packen und so eine funktionerende URL zu haben, aber trotzdem dem Server den Key nicht zu liefern (denn der hash einer URL wird nur vom Client verwendet und nicht dem Server mitgeteilt).

Panasonic 12-35mm f/2.8 X lens officially announced!. Ok, die Linse sieht nun richtig gut aus – ich glaube, da könnte ich schwach werden. Denn ein lichtstärkeres Zoom mit etwas mehr Weitwinkel könnte mir sehr gut für die GH1 gefallen.

Embedding Python in Objective-C: Part 2. Ein interessantes Projekt, dass Python in Objective-C Projekte einbettet und direkte Verbindungen zwischen Python und Objective-C Code erlaubt über automatisch generierte Bridge-Module. Könnte ich mir auch mal bei Gelegenheit angucken, ich hab da immer noch so ein Spielprojekt, das davon profitieren könnte.

jodal/pykka. Eine Actor-Library für Python, baut auf Threads und alternativ auf GEvent auf. Sieht ganz gut aus und könnte für kommunizierende Prozesse recht praktisch sein, wenn das Actor-Modell passt. Eventuell könnte man sowas auch als Basis benutzen um darauf meinen Linda Tuplespace verteilt zu betreiben.

Jython 2.7 alpha1 released!. Wow, das hat zwar ewig gedauert, aber damit sind jetzt die drei größeren alternativen Python Runtimes wenigstens alle auf 2.7 (IronPython, PyPy und jetzt Jython). Wobei ich hoffe, dass Jython 2.7 deutlich an Performance gewonnen hat, denn ansonsten ist es im Vergleich weit abgeschlagen – meine letzten Tests waren eher deprimierend (Faktor 2-3 langsamer als CPython).

cocoa-python – Port of Objective-C runtime to Python using ctypes. Steht eigentlich schon alles im Linktext drin. Interessant, weil der Autor es benutzt um einen Port von Pyglet zu schreiben, der ohne PyOBJC auskommt und damit komplett python-only Sourcecode wäre.

r17 – flexible, scalable, relational data mining language. Sieht ganz interessant aus, im Prinzip sowas wie eine Kreuzung aus AWK und SQL. Das Ergebnis ist nicht wirklich schön, aber wirkt praktisch – speziell weil man auf einfache Weise mehrere Prozessoren nutzen kann, oder sogar mehrere Maschinen (implizite Parallelisierung), und damit auch recht einfach große Datenmengen mit ad-hoc Queries auswerten kann. Dadurch, dass es ein einfaches Format für die Übermittlung von daten an weitere Schritte gibt, kann man es auch leicht auf neue Datenquellen anpassen, ohne dort erst einen langwierigen Exportschritt laufen zu lassen.

The Schemaverse. Und weil wir gerade bei seltsamen Projekten sind: da hat jemand ein MMO programmiert, das komplett innerhalb PostgreSQL läuft. Also pgSQL als Sprache benutzt. Sowas wie ein Multi-User-Schiffeversenken. Nur läuft es halt in einer Datenbank. Und wird über SQL bedient.

sipML5 – The worlds first open source HTML5 client. Äh – jemand hat einen SIP Client in JavaScript geschrieben, der komplett im Browser läuft. Es baut auf WebRTC auf, einem Standard für Realtime-Kommunikation im Web.

Plumbum: Shell Combinators and More — Plumbum: Shell Combinators. Schaut interessant aus und deutlich durchdachter als manche Alternative die ich mir angeguckt habe (und deutlich ausgebauter als shutil+glob).

Exclusive premiere: The full Leica X2 review – Ming Thein | Photographer. Sicherlich wird auch die X2 (besonders zusammen mit dem elektronischen Sucher) nicht auch nur annähernd in der Kategorie „preiswert“ laufen, aber irgendwie klingt das schon nach einem wirklich guten Update auf die X1. Und im Vergleich zur meiner Meinung nach komplett absurd überbepreisten M9-M liegt die X2 wenigstens grob im Korridor von „könnte man drüber nachdenken wenn man mal Geld über hat“.

Pocket-sized fuel cell charges phones for two weeks – Mobile Phones – CNET – CNET Asia. Wenn das Teil Realität wird, will ich eines haben. Endlich mobiler Strom, der lagerfähig ist und den man dann irgendwo draußen einfach aktivieren kann, wenn man ihn braucht. Dazu dann noch einen über USB angeschlossenen Akkulader für den Kamera-Akku (oder gucken ob man auch direkt in der Kamera über USB laden kann) und fertig ist die Kiste.

Clojure/core — Reducers – A Library and Model for Collection Processing. Warum eine neue Library? Weil die Standardfunktionen zwar interessant und sinnvoll sind, aber man eben manchmal doch eine striktere Implementierung braucht, die z.B. zwischendurch generierte temporäre Collections vermieden werden und eine direkte out-of-the-box Unterstützung für Parallelisierung geliefert wird. Ohne große Handstände und Umstände, nur ein anderer Namespace.

backbone-fundamentals/index.md at master · addyosmani/backbone-fundamentals. Ein freies Buch (das es von O’Reilly auch als totes Holz oder elektronisches Holz geben wird) über backbone.js. Backbone.js liefert eine MVC-angelehnte Struktur für JavaScript Programmierung (wobei man sich fleißig streiten kann, was denn da nun genau der View und der Controller ist und ob es „reines“ MVC ist – oder man programmiert einfach und ignoriert den theoretischen Ballast).

PyPy Status Blog: STM update: back to threads?. Die Diskussion und Entwicklung schreitet immer weiter voran – und gerade die Diskussion kommt wieder zurück zum alten Thread-Modell, nur erweitert um eine Funktion zur Definition atomarer Blöcke an Code. Und das ganze so, dass es als Code sogar unter normalen CPython laufen würde (allerdings dann natürlich ohne die Vorteile von STM, denn das gibts da ja nicht, in CPython gibt es weiterhin das GIL) aber trotzdem schon Multicore Architekturen sinnvoll nutzt. Gefällt mir immer besser und ich hoffe, es wird bald im PyPy Main Branch landen.

tuupola/jquery_lazyload. Für die Anzeige großer Mengen von Bildern eventuell interessant, weil man damit das Laden der Bilder so lange verzögern kann, bis der Benutzer tatsächlich auch zu den Bildern hinscrolled. Die Seite wird mit Platzhalterbildern schon vorgebaut und nur die Bilder wandern später über die Leitung. Ich glaube aber Infinite Scroll ist doch die bessere Lösung, da damit nicht nur Bilder, sondern generell Inhalte nachgeschoben werden können – und das arbeitet dann auch problemlos mit Masonry zusammen, so dass diese Inhaltsblöcke dann auch optisch gut verteilt werden können.

dirq 1.1.2 documentation. Hey, sowas hab ich vor kurzem gesucht – eine Queue, die auf dem Dateisystem aufbaut. Der Vorteil: einfachste Persistenz und gutes „Debugging“ in dem man einfach im Dateisystem rumprokelt. Der Nachteil ist dann aber oft, dass Queues einige Operationen atomar ausführen müssen – und das kann dann schon etwas hakeliger werden, wenn man es richtig hinbekommen will. Dieses hier ist die Portierung eines schon länger existierenden Perl-Moduls, die Chancen, dass die meisten Kinderkrankheiten raus sind, sind also recht hoch. Das API jedenfalls sieht nett simpel aus. Definitiv mal genauer angucken.

Hotcanvas: Realtime coding. Bin ja ein fan von Processingähnlichen Umgebungen, dies hier kommt dem recht nahe, läuft aber als interaktive Umgebung und sieht ganz nett aus. Ok, gibt sicherlich mitlerweile eine ganze Reihe von diesen Dingern, aber trotzdem, ich mag sowas.

Bilderarchiv | rfc1437. Mein Bilderarchiv wurde übrigens am Wochenende überarbeitet und kommt jetzt mit lustigem Javascript-Schnickschnack zum automatischen Kacheln daher. Nicht wirklich weltbewegend, aber interessanter als das vorherige, eher langweilige Format. jQuery Masonry ist der Hauptanteil der Arbeit. Nette kleine Javascript Library. Das interessanteste daran ist warscheinlich die Heuristik in meinem kleinen Plugin, mit dem ich die Bilder in Hoch/Quer/Quadratformate bringe, damit das ganze nicht durch eine Übermacht an Querformaten allzu langweilig wird. Leider bleiben noch immer Lücken im Bilderstrom, da könnte Masonry eigentlich noch gerne etwas intelligenter werden (und z.B. kleine Quadrate hochziehen). Oder ich muss mich nochmal an die Heuristik setzen und dafür sorgen, dass die Chancen für Lücken verringert werden.

ownCloud.org | Your Cloud, Your Data, Your Way!. Das werde ich definitiv weiter beobachten, denn wenn da der OSX Desktop Client da ist und der iOS Client, dann wird das eine ganz deutliche Alternative zu Google Drive, Dropbox oder SkyDrive für mich. Den eigenen Server habe ich schließlich sowieso (klassische Ehschonda-Lösung), die Dropbox würde ich dann wohl nur noch für die Integration diverse iOS Anwendungen benutzen und deren Inhalt in meinen eigenen Server integrieren und so auf meine Desktops bringen. Denn egal wie gut ein Cloud-Anbieter ist (und bisher ist Dropbox da einer der deutlich besseren), ein eigener Server gibt mir im Endeffekt dann doch mehr Vertrauen.