Archiv 27.12.2010 - 21.1.2011

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

CLAZY: Lazy Calling in Common Lisp bietet erweiterte lazy-evaluation für Common Lisp die über das übliche delay/force Pärchen hinaus geht.

Funds liefert voll funktionale Datenstrukturen für Common Lisp. Gerade für multi-threaded Code kann das sehr hilfreich sein. Leider noch nicht in Quicklisp drin.

qb.js: An implementation of QBASIC in Javascript (part 1) - Steve Hanov's Programming Blog. Blasts from the past.

Wer Vi gewohnt ist und Chrome benutzt: Vimium liefert Vi-ähnliche Tastaturbedienung für Chrome. Ist nach kurzer Eingewöhnung wirklich sehr brauchbar und kann deutlich bei der Reduzierung von Belastungen der Maus-Hand helfen.

Home of the WordPress Wiki Plugin. Weiss noch nicht so genau ob ich sowas überhaupt will aber könnte eventuell auf Dauer interessant werden, sollte mich mal wieder Anfälle von Dokumentationswahn überkommen. Erstmal geblogmarkt, man weiss ja nie. Sah jedenfalls von den Wordpress-integrierten Wikis am interessantesten aus.

Embedder Plugin Home | moztools. Geblogmarkt für später - ich hatte mal selber ein einfaches Snippet/Glossary/Macro/Embed Plugin für Wordpress, aber das hier sieht so aus als ob ich das lieber nehmen sollte anstelle mir was eigenes zu dengeln. Um häufiger wiederkehrende Schnipsel schnell eingebbar zu machen sieht das sehr praktisch aus.

CBSC Decision | CHOZ-FM re the song “Money for Nothing” by Dire Straits. Ähm. Ok, fällt denen ja recht früh auf, dass dieser Song nicht gespielt werden darf in Canada. Wenn ich mir das so überlege, da dürften bei passender Umsetzung dieser Richtlinien in Kanada eigentlich nur noch Country und Western als akzeptabel übrig bleiben ...

dcolthorp/matchure - Pattern-Matching auf Clojure-Datenstrukturen (also nicht bl0ß Strings und Regular Expressions, sondern auch komplexere Matchings gegen Listen, Vektoren, Maps).

About Dirigible - für all die, die ein Spreadsheet in der Wolke wollen, aber nicht wie bei Google Docs mit JavaScript programmieren wollen, sondern mit Python. Als selbstgehostete Lösung fänd ich es ja richtig klasse, speziell wegen der dort beschriebenen einfachen Verknüpfung von Spreadsheets über Servergrenzen.

kriyative/clojurejs - GitHub sollte ich mir mal angucken, ist eine weitere JS-Integration, hier für einen Subset von Clojure, der automatisch nach Clientside JavaScript übersetzt wird. Und der hier unterstützt rudimentär auch jQuery.

Welcome to WuWei. Interessante Common Lisp Library, die Ajax User Interfaces rein in Common Lisp programmierbar macht, ohne sich mit der Umsetzung auf JavaScript rumschlagen zu müssen. Allerdings leider nicht für meine präferierte JS-Library jQuery, sondern für Prototype und Scriptaculous.

Bizarre sea slug is half plant, half animal. Die Natur baut eben doch immer wieder die seltsamsten Wesen.

Mozilla Labs » skywriter. Und den hier nur mal als Erinnerung, dass web-basierte Code-Editoren nicht wirklich ganz was neues sind.

Life at Eclipse » Blog Archive » Introducing Orion. Eine Browser- basierte IDE auf Eclipse-Ideen aufbauend (aber neu implementiert, also nicht einfach Java-Applets, sondern sauber auf HTML5 und JavaScript aufbauend). Könnte ganz interessant werden - klar, gibt die üblichen Miesredner, und natürlich ist das Web nicht unbedingt die ideale Plattform für eine IDE. Aber der Webbrowser ist überall und der Zugriff ist von überall relativ einfach möglich. Also zusätzliche Option in Ergänzung zu einer normalen IDE kann es also durchaus Sinn machen (z.B. für Arbeiten unterwegs über ein iPad).

Bitte vergessen. Am besten nicht nur die Bilder (was ja bei manchen wirklich sinnvoll wäre), sondern auch den - ziemlich dämlichen und im Falle des "Erfinders" ziemlich durchsichtigen - Ansatz der Bundesilse und ihrem Professor.

Bundestube. Ist doch mal was richtig sinnvolles. Suchen nach Inhalten und Rednern von Bundestagsdebatten und dann angucken der Mitschnitte.

App der British Library: Hohe Literatur für iOS- und Android-Geräte. Wer sich für alte Schriften interessiert, könnte daran vielleicht Interesse haben. Ich würde mir wünschen, andere Museen und Bibliotheken würden ähnlich arbeiten und Werke digitalisiert zur Verfügung stellen.

Chromium Blog: HTML Video Codec Support in Chrome. Woah. Google schmeisst H.264 aus dem video-Support von chrome raus und setzt voll auf Theora und WebM.

MonoMac - Mono. Mal genauer angucken, hat jetzt einen aktuelleren Packager, der den ganzen Mono-Kram gleich mit einpackt in die Applikation. Zum Einen kann man damit dann Apps auf den AppStore hochladen, zum anderen ist es einfach simpler die Anwendungen zu installieren. Und da ich mich ja nunmal mit dem ganzen .NET-Zeug beschäftigen muss, kann ich auch gleich was sinnvolles damit anfangen.

Eisskulpturen in Nizhniy Tagil

Jedes Jahr zu Neujahr werden in Nizhniy Tagil Skulpturen aus Eis oder Schnee gebaut und ausgestellt an verschiedenen Stellen in der Stadt. Hier ein paar die mir richtig gut gefallen haben.

Modernizr könnte praktisch werden, wenn man auf neuere HTML5 Sachen zugreifen will, aber nicht immer nur die neusten Browser antrifft (im Prinzip eine Browser-Weiche, die jemand anderes einem schon programmiert hat und auf die man mittels CSS Rules von Stylesheets oder jQuery Code zugreifen kann).

Malmström: EU-Kommissarin will keine Internetsperren für weitere Themen. Oh, toll, wir müssen nur der EU-Kommissarin das allgemeine Filter-Werkzeug an die Hand geben und dann ihr glauben, dass die EU keine Ausweitung auf andere Themen plant und will. Und das dann auch gleich für alle folgenden EU-Kommissionen mitglauben, weil die würde doch nie ein einmal eingeführtes Zensurmittel in der Anwendung ausweiten. Ich mein, das wäre ja als würde man unterstellen, die Maut-Daten würden auch für andere Zwecke als nur die reine Abrechnung von Straßennutzung verwendet werden. (übrigens: wer Sarkasmus in meinen Kommentaren findet, darf ihn behalten)

Department of Justice: Twitter muss Wikileaks-Daten an US-Gericht übergeben. Wär ja auch noch schöner, wenn sich die USA irgendwie sinnvoll mit Wikileaks und den veröffentlichten Inhalten auseinandersetzen würde - generelle Verdächtigungen und wilder Aktionismus jenseits von jeglicher Rechtstaatlichkeit ist doch viel lustiger. Und glaube keiner, dass wäre ein rein amerikanisches Problem, unsere Prolethiker sitzen warscheinlich schon da und überlegen ob sie das gleiche machen dürfen. Denn so große Geheimnisse wie die Inkompetenz und Arroganz unseres Bundesaußenministers dürfen ja auf keinen Fall an die Öffentlichkeit gelangen.

Nischni Tagil - da gehts hin, wenn es wen interessiert. Start der Reise in einer Stunde, Zug nach Frankfurt (mit viel Luft, man weiss ja nie mit der Bahn heutzutage) und am späten Abend dann mit dem Flugzeug weiter. So alles klappt frier ich mir dann um 7 Ortszeit den Hintern am Ural ab.

A Type-Safe Database Query DSL for Scala. Klingt interessant, ein bischen etwas zwischen LINQ und ORM für Scala. Sollte ich mir mal angucken wenn ich aus der Kälte zurück bin.

"Zudem erfolgte die lange Ansage nur in den Fällen, in denen die Callcenter-Agenten den Eindruck hatten, dass der Anrufer meinte, bei der Deutschen Bahn gelandet zu sein. Für alle anderen habe es eine kurze Ansage gegeben." - faszinierend, dieser Callcenter-Betreiber hat eine Telepathie-Schnittstelle erfunden? Denn die Preisansage kommt doch bevor man mit dem Agenten spricht (der ja so teuer ist, dass man die Gesprächszeit mit ihm vergolden muss). Mehr bei 11861: Betreiber der Bahn-Auskunftsnummer klagt gegen Abschaltung - Golem.de.

Studie: Stromkonzerne verlangen zwei Milliarden Euro zu viel. Erstaunlicher als die Dreistigkeit der Energiekonzerne ist das (vorgespielte) Erstaunen der Prolethiker ob dieser Sache - denn was erwarten die, wenn ein faktisches Monopol bestehen gelassen wird und keine ernsthafte staatliche Regulierung eingesetzt wird? Das Werfen von merkelschen Wattebäuschen bringt ja nun nachweislich garnix und eine Regierung, die von den Energieversorgen auf banale Weise gesteuert wird, hat sicherlich kein Interesse etwas zu ändern. Zahlen müssen wir dann wieder (zahlen müssen wir eh immer, da mach ich mir nichts vor, aber es wär schon schön für sinnvolle Sachen Geld auszugeben und nicht für die Milliardengewinne einer sowieso schon viel zu fetten Strom-Mafia).

Sequel: The Database Toolkit for Ruby. Sieht ganz nett aus, die DSL gefällt mir irgendwie. Erinnert mich in Teilen an Djangos ORM.

MacRuby: The Definitive Guide. Buch bei O'Reilly in der Mache zu MacRuby. Kann man schon viele Teile lesen, vielleicht für den einen oder anderen interessant.

hoc - Project Hosting on Google Code. Nur mal so geblogmarkt, falls ich doch mal wieder mit Haskell spielen will. HOC ist eine Bridge zwischen Haskell und Objective-C und erlaubt damit Zugriff auf die OSX Frameworks.

emscripten - Project Hosting on Google Code. Und das ist das Tool, mit dem Python in den Browser/Server gebracht wurde. Es wandelt LLVM Bitcode nach JavaScript um und ermöglicht eine Reihe von interessanten Spielereien.

Emscripten: Python. Ziemlich cool, eine Crosscompilation des Standard-Python nach JavaScript mit Hilfe von Emscripten. Und damit ein volles Python 2.7 (minus vieler Libraries natürlich) im Browserfenster.

pyfilesystem - Project Hosting on Google Code. Könnte mal nützlich sein, wenn man von Python über einheitlichen Code auf verschiedene Filesystemtypen zugreifen will.

Instagram api - instagram - GitHub. Leider nur inoffiziell, und Instagram hat schon den ersten Dienst aufgefordert deren Nutzung des inoffiziellen API einzustellen. Von daher ist die Nutzung des API mit viel Vorsicht zu versehen. Aber interessant wäre es schon (allein schon damit ich nicht mehr meine aktuellen Bilder von Tumblr klauben muss, denn die sind in letzter Zeit nicht so wirklich stabil). Denn mit dem API könnte ich einfach auf meine damit erstellte Sammelseite meines Bilderfeeds zugreifen.

Monads Are Not Metaphors - Code Commit. Definitiv eine der besseren Erklärungen was ein Monad ist, die ich gelesen habe.

J Home. Weil man ab und zu einfach mal andere Sprachen angucken sollte, die so anders sind, das man garnicht erst in die Versuchung kommt sie mit dem normalen zu vergleichen (und hey, ein APL-Abkömmling mit ASCII-Zeichensatz ist wenigstens einmal im Jahr etwas Aufmerksamkeit wert). Kann man auch einfach als Highend-Taschenrechner betrachten.

'surface' plot 1 2 o. / 0.2 * i.60