Linkblog - 16.1.2011 - 12.2.2011

Leica M Lens Codes. Weil ich mir eine gebrauchte M8 gekauft hab (jaja, Ruhe, kein Geläster) und jetzt kein Geld für die Objektivumrüstungen ausgeben will (hey, du da hinten, ich hab dich Kichern gehört!) - die kostet nämlich locker mal 100 Euro pro Objektiv. Vielleicht später mal, aber übergangsweise könnte ich warscheinlich mit ner Schablone, einem schwarzen Permanentmarker und dieser Tabelle auskommen.

SourceTree | Mercurial and Git GUI for Mac OS X. Hmm - ist nicht ganz billig mit 45 Euro im AppStore. Aber manchmal hätte ich schon ein GUI für die Arbeit mit Mercurial, speziell wenn ich mit fremden Repositories arbeite und womöglich lokale Changes habe. Vielleicht spiel ich irgendwann mal mit der Trial rum.

JSTalk ist ein JavaScript-Editor mit integrierter Runtime. Und Preprozessor um JavaScript eine Objective-C ähnliche Syntax für den Zugriff auf Objective-C Klassen zu geben. Und einer Bridge zu Objective-C darunter. Im Prinzip sowas wie FScript, nur eben JavaScript. Kann auch zum Scripten von Anwendungen benutzt werden anstelle von AppleScript. Oder einfach nur zum Rumspielen mit Cocoa-APIs. Irgendwie ziemlich cool, auch wenn es erstmal ganz unscheinbar daherkommt.

“Dossier de Presse” « Lucs Journal. Ein Plugin für Lightroom, das direkt in die Wordpress Media Library oder eine NextGEN Gallerie exportieren kann. Allerdings natürlich dann wieder über xmlrpc.php, welches ich bei mir wegen der häufigeren Sicherheitsprobleme damit nur ungern freischalte.

Advanced sign-in security for your Google account - Official Gmail Blog. Grundsätzlich eine gute Idee, denn dadurch wird der Login - bei korrekter Anwendung - wirklich sicherer. Aber ob man seinen inneren Schweinehund überwindet und das auch tatsächlich anwendet ... (bin mir bei mir selber nicht mal ganz sicher ob ich das für eMail mir antun will)

ongoing by Tim Bray · Broken Links. Warum diese übermäßig eingesetzten #! Fragmente in URLs ganz große Scheiße sind und warum man sie nicht benutzen sollte. Und ja, es nervt, dieses Web vergewaltigen - zumal es dafür absolut gar keinen Grund gibt, dynamische Server können Problemlos verschiedenste URL Strukturen mappen. Und ja, ich weiss um das Problem, dass man die URL im Browser nur im Fragment-Part umschalten kann per JavaScript, ohne ein Reload zu erzwingen - aber das ist kein Grund gleich alle URLs auf so ein blödes Fragment-Format umzustellen.

Beginners GH1 Custom Firmware Guide - EOSHD. Muss ich mir vielleicht auch mal angucken, custom Firmware für die GH1. Allerdings sehr Videolastig, und bisher mache ich damit noch nicht so viel.

Secret texts 'key to Julian Assange case' - oder "nur weil du paranoid bist heisst das nicht, das nicht doch jemand versucht dich in die Pfanne zu hauen". Das ganze sieht jedenfalls immer mehr nach einem Feldzug der derzeitig ermittelnden Staatsanwältin aus und immer weniger wie ein rechtsstaatliches Vorgehen. Aber wie ein schwedischer Bekannter lakonisch kommentierte: "wir schmeissen auch Leute ins Gefängnis, die Links auf Files ins Web stellen, die Links auf illegale Downloads enthalten".

scgi-wsgi 1.1 released - Allan Saddi's projects blog - bisher benutzen wir seinen FLUP basierten Server, der in Django mitkommt, aber die Möglichkeit auf mod_prox_scgi zu gehen wäre schon interessant, weil wir effektiv einen Server dazwischen einsparen könnten und nicht mehr mit ajp arbeiten müssen. Wobei allerdings ajp auch nicht so schrecklich ist - also vielleicht einfach mal ein paar Tests machen. Für einfache Webservices benutze ich aber weiterhin den auf gevent aufbauenden wsgi Server den ich deezeit im Einsatz habe, denn der ist einfach nur genial schnell und benutzt fast keine Resourcen.

Streitfall: Telekom will einheitlichen De-Mail-Domainnamen per Gesetz - staatlich geförderte Abzocke frei von technischem Sachverstand. An Lächerlichkeit ist das gane de-mail-Debakel kaum noch zu übertreffen.

Carl Zeiss joins Micro Four Thirds System - und damit siehts auch für meine Panasonics wieder interessanter aus, denn die Zeiss Video Linsen könnten wirklich geniale Ergänzungen für das System sein. Und was Schneider-Jreuznach bringen wird ist ja auch noch nicht bekannt, aber die haben schon für den Bereich digitaler Grossformat Kameras interessantes geliefert. Ich sach doch Fotografietechnik ist im Moment wieder richtig spannend.

Gravatars: why publishing your email's hash is not a good idea. Und erklärt auch, warum Avatare wieder aus meinem Blog verschwunden sind für Kommentatoren - nicht dass ich da groß an Paranoia leide, aber wozu für ein Gimmick die Möglichkeit eröffnen eine Mailadresse zu ermitteln?

IN-12 / IV-12 Nixie / VFD Clock. Weil, Röhren sind einfach nur geil. Allerdings würde ich dann doch eher zu der Option "fertig montierte Uhr" greifen, beim Lötkolben landen meine Finger viel zu häufig auf dem falschen (heißen) Ende ...

RUR-PLE ist sowas wie Logo, nur eben mit Python anstelle von Logo als Sprache. Also eigentlich nur die grafische Umgebung von typischen Logo-Implementierungen. Auf jeden Fall ein nettes Spielzeug.

using negotiate authentication (GSSAPI Kerberos) with Firefox. Da wir danach immer mal wieder geguckt haben und uns gewundert haben, wie man Firefox an Kerberos-Anmeldungen koppeln kann.

Neueinsteiger: Kenko will Systemkamera mit C-Mount-Objektiven anbieten. Einfach nur interessant, weil dadurch mal wieder eine Systemkamera der etwas seltsamen Art kommt - C-Mount sind kompakte Video-Objektive, es gibt auch einige von Zeiss (also mit recht guter Qualität) und der Bildkreis dieser Optiken ist eher Kompaktkamerachips angemessen. Das bedeutet natürlich schlechtere Low-Light-Fähigkeit, aber dafür Chancen auf sehr kompakte Bodies (wobei meine NEX mit ihrem APS-C Chip trotzdem schon einen sehr kompakten Body liefert). Ein bischen ist das ganze wieder wie zu den Topzeiten der analogen Fotografie im KB-Format, also mit der Olympus Pen und der Pentax 110 und anderen Kamera-Exoten der Markt richtig bunt wurde. Gefällt mir.

How to write vim plugins with python. Weil ich Python mag, weil ich Vim mag und weil man immer mal wieder kleinere Sachen bauen will die einem das Leben erleichtern. Und weil die Script-Sprache von Vim selber doch eher grausig ist.

Anscheinend ist die Sony Alpha NEX-Open-Source-Firmware Linux-basiert. Kann noch nicht genau sagen was dahinter wirklich steckt, aber Sony hat Linux Kernel Downloads (und die üblichen embedded Tools) für die NEX auf dem Server. Wenn da wirklich ein Linux drauf läuft, könnte das auf Dauer ein Hackerparadies werden!

WorkingWithSubversion - Mercurial. Weil ich immer wieder auf gammelige SVN Repositories stoße und doch Mercurial deutlich vorziehe, sollte ich mir hgsubversion mal genauer angucken.

Weil ich sowas nicht zum ersten Mal suche und es recht praktisch aussieht: Sorting elements with jQuery – James Padolsey.

SLR Magic 35 1.7 Lens review on the Sony NEX-5. Interessantes - billiges - Objektiv für die Sony NEX. Im Prinzip ist das eine Linse wie sie in Überwachungskameras zum Einsatz kommt, adaptiert auf das E Bajonett. Die optische Qualität ist "interessant" - im Prinzip eine Spaß-Linse für Experimente.

Ricoh developing M-mount module for GXR system: ich bin ja bei der Sony Nex 3 gelandet um meine Leica Gläser wiederzubeleben. Und bin damit sehr zufrieden nach der neuen Firmware für die Nexen. Aber die GXR mit so einem M-Modul wäre sicherlich auch ganz interessant (allerdings preislich warscheinlich eher nicht).

Vimari - Keyboard Shortcuts extension for Safari - GitHub. Ein bischen so wie Vimium für Chrome, kann allerdings wesentlich weniger Tricks (und die Links werden scheinbar vom Seiten-CSS beeinflusst, weshalb auf meiner Website die QuickLinks doof aussehen)

Google: Bing Is Cheating, Copying Our Search Results. Interessanter Artikel, wenn das stimmt, hat sich Microsoft da einen ziemlich dicken (und peinlichen) Klops geleistet.

Java Hangs When Converting 2.2250738585072012e-308. PHP ebenfalls. Des Rätsels Lösung in beiden Fällen: die Zahl ist die kleinste darstellbare Zahl in double floats und für die Konvertierung werden in Java und PHP Näherungen ermittelt, aber bei diesen werden ungünstige Werte als Start angenommen - und damit ergeben sich Endlosschleifen, weil der Zielwert nie erreicht wird. Und ja, das ist kritisch, weil man damit Server in eine Schleife schicken kann, wenn man diese Zahlenwerte in Eingebefelder die zu double float konvertieren eingibt. Mit Python hab ich es auch mal probiert (CPython und PyPy), aber die rennen nicht in eine Schleife, die liefern einfach einen etwas anderen Wert.

mobl ist da schon eher mein Ding, eine Programmiersprache, die nach HTML5+JavaScript compiliert und mit IDE-Unterstützung in Eclipse kommt. Da HTML5 auch mit Clientside-Databases kommt, und über Manifest-Dateien die ganze Anwendung auf dem Device gecached werden kann, kann man so auch gut offline-taugliche Anwendungen bauen. Und nebenbei ist das ganze auch für Androiden brauchbar.

Three20 - angucken, falls ich mir doch noch mal iPhone-Programmierung antun will. Hat einige interessante Konzepte, speziell zur Persistenz und internen Struktur (benutzt interne URLs und URL-Routing um Models und Views zusammenzubringen).

Introduction to Pharen. Ein Lisp, welches nach PHP kompiliert. Weird. Ok, könnte praktisch sein, wenn der Hoster nur PHP als Serversprache anbietet. Aber trotzdem. Weird.

cfbolz / Pyrolog. Interessantes Projekt, weil das Prolog in Python geschrieben ist, aber die PyPy Toolchain für den JIT benutzt - das gibt einen schönen Einblick was mit PyPy neben Python alles möglich ist.

Sho - Microsoft Research. So ein bischen wie SciPy und Sage (dem Teil von Sage, der sich mit Datenanalyse und -visualisierung beschäftigt), nur auf IronPython und .NET aufbauend.

eMIPS - Microsoft Research. Ja, Microsoft macht auch andere Sachen als Fenster. Und manches davon ist durchaus interessant - wie zum Beispiel extensible MIPS, im Prinzip eine Prozessorarchitektur mit ladbarem Microcode. So ein bischen hatten wir das schon mit den Kisten von Xerox (die Alto natürlich und später auch die D-Systeme).

live-processing ist sowas wie Impromptu - also live coding Umgebung - in Clojure. Setzt natürlich stärker den Fokus auf Grafik, da es ja auf Processing aufbaut, und hat bisher noch nicht den vollen Umfang von Processing verfügbar, aber hey, zum Rumspielen mit einer neuen Sprache sollte es schon reichen.

Optimizing Crajsh – Part 1 « #ponce's blog. Viele Informationen (auch den verlinkten zweiten Teil lesen!) über effiziente Nutzung von JavaScript im Browser für die Entwicklung von Spielen.

don't code today what you can't debug tomorrow: PhantomJS: minimalistic headless WebKit-based JavaScript-driven tool. Way cool - muss ich mir unbedingt mal angucken, könnte für viele Spielereien interessant sein.

linq.js - LINQ for JavaScript. Ganz interessanter Hack um LINQ in JavaScript zu bieten.

PyPy Status Blog: PyPy wants you! - yay! Fast-forward in PyPy gemerged! Das bedeutet bald ein 2.7 kompatibles PyPy - das Projekt sucht jetzt Contributoren, die 2.7 Features implementieren, die noch fehlen. Die nächste PyPy Version wird sehr interessant!.

InformIT: Art of Computer Programming, Volume 4A, The: Combinatorial Algorithms, Part 1. Part 1 - das sind 2 Überschriften in dem geplanten Buch, sieht fast so aus als würden es eher so 4-5 Bücher werden. Soviel Platz hat doch keiner im Bücherregal! Übrigens ist Volume 5 für 2020 geplant. Sind ja nur noch 9 Jahre.

Genau. Wenn man schon sowas langweiliges wie "warum generic functions und nicht single-object-dispatch" erklären will, dann mit solchen Beispielen:

A short example: Imagine you have a class human which is inherited by a class male and female. Now as we all have an urge to reproduce where to put a method for having sex? Create a method haveSex in the human class, duplicate it in male or female? What would the argument to such a class be? What about having sex with people of the same sex, toys, animals, buildings...

via /dev/random - Random Thoughts On Programming In Parentheses - Coops - An introduction to chicken scheme's object system.

Tail Call Optimization Decorator - jemand hat Python Tailrecursion beigebracht, als Dekorator. Sehr cool. Jemand anderes hat das aufgegriffen und zwei schnellere Versionen gebaut, die allerdings kleine Einschränkungen in der Nutzung haben. Und bei LTU hat auch jemand eine Version gemacht - besonders cool an der ist eigentlich nur, dass er mein lazypy Modul benutzt. Und dann hab ich noch eine super-kurze und schnelle Version gefunden, die dann allerdings falsche Ergebnisse liefert, wenn eine Funktion nicht in tailposition aufgerufen wird. Aber da man Tailcalls eh in der Regel in kompakten rekursiven Funktionen benutzt (oder zwei oder wenigen, die mutual recursion machen), sollte man das im Griff haben können.

App Development Tools Contrib - Jawoll! Das ist eine Sache auf die viele gewartet haben - bessere Werkzeuge für OSX Programmierung mit CCL direjt in der IDE. Ich hoffe die nächste Release von CCL ist bald stable und enthält diese Tools.

Harmony Of My Dreams | Brendan Eich. Interessanter Post von Mr. JavaScript. Ich hoffe, er kann seine Ideen durchsetzen und wir sehen sie in einem zukünftigen JavaScript, denn das würde die Sprache meiner Meinung nach in den betroffenen Fällen deutlich angenehmer zu schreiben machen.

Swordcane : The Official Web Site of Burger Knives - ob ich sowas durch den Zoll kriegen könnte? (nicht ernstgemeinte Frage, ich bin mir ziemlich sicher, dass Stockdegen in Deutschland illegal sind, da es verdeckte Waffen sind)

F-Script Home Oldy but Good! wird sogar fleissig weiterentwickelt. Ich wünsche mir ja immer noch native Klassenbrowser mit Editmöglichkeit, um F-Script zu einem "echten" Smalltalk für OSX zu machen, aber auch als Ersatz für AppleScript (mit drastisch weiter gehenden Möglichkeiten, da es nicht nur die ScriptinBridge sonder alle Objective-C Frameworks unterstützt) taugt es. Und ist für viele Zwecke nah genug an Smalltalk dran.

Lively Kernel - Lively. Sowas ähnliches wie ein Smalltalk System, aber es läuft im Browser, lebt in Webseiten und benutzt JavaScript als Sprache. Gibt typische Smalltalk Werkzeuge wie die Klassenbrowser und Inspektoren. Und ein Test auf dem iPad war nicht rasend schnell, aber benutzer. Von Dan Ingall, dem Smalltalk-Implementor neben Alan Kay.

Open Cobalt Website. Was aus OpenCroquet geworden ist - sind scheinbar jetzt auch benutzbare Downloads und nicht mehr nur ein SDK verfügbar. Peer2Peer virtual worlds in Smalltalk.

Pyrates are cool — A wiki about python game development. Drin was drauf steht. Sicherlich nicht alle Sachen verlinkt, aber ist ja ein Wiki, und als Startpunkt für jemanden der gucken will was so alles rund um Spiele mit Python passiert vielleicht ganz interessant.

CoRD: Remote Desktop for Mac OS X. Open Source und mac-typischer als die Version von Microsoft.

CLPython - an implementation of Python in Common Lisp. Einfach weil es zwei meiner Lieblingssprachen verheiratet und pure-Python-Libraries für Common Lisp verfügbar macht. Viellericht sieht jetzt der eine oder andere wohin meine Suche geht - den Kuchen essen und ihn behalten. CLPython ist übrigens zu Python 2.5 kompatibel, also sogar ein recht aktueller Sprachlevel (auch wenn mir sicherlich einige Sachen aus 2.6 fehlen werden, aber das ist bei PyPy nicht anders).

FSet on Common-Lisp.net liefert auch funktionale Datenstrukturen. Diese Library ist auch in Quicklisp verfügbar, also einfacher zu installieren. Und sieht sehr interessant aus.

CL-STM ist einfach Software Transactional Memory für Common Lisp (ja, ich gucke derzeit auf CL-alternativen für diverse Clojure-Features).