Am Rande notiert ...

AugmenteDev. Absolut cooles Spielzeug – man druckt ein paar Marker (kleine Zettel mit Muster), platziert die in der Gegend und dann lädt man einfach ein paar 3D Modelle aufs iPhone oder iPad – diese tauchen dann an den stellen der Marker auf, korrekt skaliert und rotiert entsprechend den Markern. Sehr unterhaltsam, auch wenn es erstmal banal klingt. Mein Todo ist jetzt, meinen SL Avatar in ein eigenes 3D Modell umzubauen in verschiedenen Posen, und diese dann als Modelle auf dem iPhone dabei zu haben, um Fotos aus allen möglichen Gegenden zu machen mit meinem Avatar im Bild. Oh, und die App ist frei für iOS und Android.

RQ: Simple job queues for Python. Wirklich simpel – man braucht nur einen Redis Server und das Modul und das wars mehr oder weniger. Simple Funktionsaufrufe werden in die Queue geworfen, ausgeführt und Ergebnisse zurückgeliefert. Kein großer Overhead im Code.

apenwarr/bup. Sehr interessantes kleines Tool welches Backups differentiell verwaltet – und zwar auf der Basis der git Datenstrukturen. Im Prinzip könnte man es als einen intelligenten Splitter für große Files mit geringen Änderungen in jeder Version betrachten – also z.B. tar Files von Servern. Dazu wird ein rsync-ähnlicher Algorithmus für die Differenzenermittlung benutzt und das Ergebnis in einem git Archiv abgelegt. Das ganze kann auch noch mit dem vorigen git-annex kombiniert werden und damit eine platzsparende Backup-Lösung bieten.

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.

Neulich im Internet (Schwarzweiß-Ausgabe)

Diese Galerie enthält 4 Fotos.

Ich habe auf Google+ und/oder Flickr neue Bilder hochgeladen. Hier sind sie – unsortiert und unkommentiert. Das ist die Schwarzweiß-Ausgabe.

Neulich im Internet

Diese Galerie enthält 10 Fotos.

Ich habe auf Google+ und/oder Flickr neue Bilder hochgeladen. Hier sind sie – unsortiert und unkommentiert.

Am Rande notiert ...

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.

Gumbo

Heute mal was exotisches – Gumbo. Und dazu dann das ganze auch noch ein bisschen abgewandelt, weil ich Lust darauf hatte. Im Prinzip ist das ganze ziemlich einfach: Speckwürfel (250g), Zwiebeln (wir hatten zwei Zwiebeln), Knoblauchzehen (nicht zu geizig mit … Weiterlesen

Am Rande notiert ...

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).