Archiv 10. Februar 2006

I'm not a hater, I just flush a lot.

Immer wieder faszinierend, was für Fragen im Internet gestellt werden - und Antworten bekommen!

Teufelsgrinsen

Klar, ich pack Daten zu Google ...

Datenschützer sind nicht begeistert von Google Desktop Search 3:

Am gestrigen 9. Februar 2006 wurde eine Beta-Version von Google Desktop Search veröffentlicht, mit der sich Dokumente finden lassen, die auf verschiedenen Rechnern abgelegt sind. Dies wird dadurch realisiert, dass die betreffenden Dateien auf dem Google-Server abgelegt werden, so dass man zur Nutzung dieser Funktion ein Google-Konto besitzen und verwenden muss.

Super Idee. Klar, ich pack Daten auf meinem Arbeitsplatz auf einen Google-Server. Wo er griffbereit für jeden rumliegt, der Zugriff auf die Kisten erlangt. Ganz grosse Idee. Google mag ja den Grundsatz "don't do evil" haben - aber sie sollten auch mal über den Grundsatz "don't be stupid" nachdenken ...

Language Design Is Not Just Solving Puzzles

Language Design Is Not Just Solving Puzzles ist ein recht interessanter Artikel von Guido van Rossum über die Unmöglichkeit einer eleganten Syntax für mehrzeilige Lambdas in Python. Lesenswert und in weiten Teilen stimme ich ihm zu. Allerdings stolpere ich dann über so einen letzten Absatz:

And there's the rub: there's no way to make a Rube Goldberg language feature appear simple. Features of a programming language, whether syntactic or semantic, are all part of the language's user interface. And a user interface can handle only so much complexity or it becomes unusable. This is also the reason why Python will never have continuations, and even why I'm uninterested in optimizing tail recursion. But that's for another installment.

Ich bin durchaus bereit zu akzeptieren das Continuations komplex sind - aber nicht wegen des Interfaces. Denn im Interface für Continuations braucht man nur den callcc Aufruf zum Binden der Continuation und eine einfache Funktionssyntax zum Auslösen der Continuation. Das Hauptproblem bei Continuations liegt in der Kooperation mit Generatoren und Exceptions - was passiert, wenn eine Continuation innerhalb eines Generators ausgelöst wird? Was passiert, wenn innerhalb einer Continuation eine Exception ausgelöst wird? Das sind die schwierigen Aspekte - die übrigens auch Scheme-Implementatoren zum Schwitzen bringen, weshalb bei denen in der Regel Exceptions nicht so gerne gesehen werden (gleiches Problem, einfach nur aus der anderen Richtung betrachtet).

Also ok, keine Continuations in Python - auch wenn wir schon längst poor-mans-continuations mit pickable generators bekommen (oder mit Greenlets, oder mit cloneable Coroutines, oder einer der anderen vielen Ansätze um Subsets von Continuation-Features zu erhalten).

Aber was bitte schön ist komplex an Tail-Call-Optimization (denn es geht nicht nur um Tail-Recursion)? Die ist so primitiv, das sie transparent für den Programmierer implementiert werden kann - wenn ein Tailcall vorliegt, keine Rücksprungadresse auf dem Stack notieren, sondern die Parameter im Stackframe umladen und einen einfachen Jump notieren. Wenn man nett sein will, kann man noch eine Pseudofunktion "tailcall" einführen, welche eine Exception auslöst wenn sie nicht in einer Tailcall-Position ausgeführt werden soll. Es mag weitere Bedingungen geben, unter denen Tailcalls nicht optimiert werden können - aber diese können genauso in eine entsprechende Prüfung einfließen.

Gerade der Funktions-Overhead ist es ja, der manche Algorithmen in Scriptsprachen nur unschön implementierbar macht. Und Tail-Call-Optimization würde da definitiv helfen. Ganz besonders in Situationen, in denen man eine Kette von kleinen Funktionsaufrufen hat. Wegen meiner kann es auch gerne eine Optimierung sein, die nur bei -O (oder einem -O2 oder sonstwas) aktiviert wird.

Powerful Remote X Displays with FreeNX - interessant für Remote-Server, da es deutlich bessere Responses und niedrigere Bandbreitenforderungen hat als X oder VNC.

Content:

RENAISSANCE Die offizielle Website des Films von Christian Volckman - im März 2006 in den Kinos. - sieht interessant aus. Ok, ich verstehe kein Wort, aber die Bilder ...

Sin City

Sin City hab ich ja im Kino irgendwie nicht hinbekommen zu gucken - immer wenn wir wollten gabs entweder keine Karten, oder keiner konnte, oder dann war der Film nicht mehr im Kino. Irgendwie schon dämlich - aber jetzt hab ich mir den auf DVD gekauft. Wow. Beeindruckend - absolut beeindruckend. Klar, die Handlung ist so wie in den Comics - relativ wenig Anspruch, relativ viel Gewalt. Aber die Umsetzung ist gigantisch.

Übrigens weiss ich jetzt auch, warum die Cinemadisplays von Apple so heißen.

VMware Server jetzt Freibier

VMware Server ist jetzt frei wie Freibier - und soll es wohl auch nach der Beta sein. Klasse Sache, denn VMWare ist nunmal immer noch der uneingeschränkte König unter den Virtualisierern - auch unter Linux. Die Open-Source-Projekte müssen da noch einiges auflegen, um an das ranzukommen was VMWare Server bietet.

Wer das ganze aber auf einem eigenen Host ausprobieren möchte (was aufgrund der recht einfachen Installation recht fix geht): unbedingt aufpassen, das der Host nicht weitere User-Accounts hat. Denn VMWare Server benutzt gnadenlos alle Accounts die auf dem System selber eingerichtet sind. Jeder Benutzer, mit dem man sich anmelden kann - und das kann dann durchaus auch ein popeliger Mailbenutzer sein - kann dann virtuelle Maschinen anlegen und öffentliche virtuelle Maschinen (was im Prinzip alle als root angelegten sind) kontrollieren. Und löschen.

Das ganze Permission-Management ist generell ein etwas haariges Thema bei VMWare Server - es wird anhand der Systemberechtigungen auf das Config-File für die virtuelle Maschine entschieden. Das ist komfortabel - man braucht halt nur die bekannten Tools - aber auch recht unintuitiv bei einer Erstinstallation. Und z.B. das Permission-Management für die Maschinenanlage hab ich garnicht aktiviert bekommen (dafür wird ein spezielles Check-File angelegt, dessen Berechtigungen dann sagen, ob ein Benutzer eine neue Maschine anlegen darf oder nicht).

Aber wenn es denn erstmal rund läuft (ich hatte grösseren Stress mit dem X11 auf dem Mac - ssh -Y statt ssh -X ist da die Antwort), ist das schon eine feine Sache. Debian-Guests nutzen durch die VMWare-Tools nur minimalen Speicher, jedenfalls wenn sie nicht gerade aktiv sind - und das Management mit der grafischen Konsole oder der Weboberfläche ist auch ganz nett. Ich glaub mit einer neuen Maschine könnte mir das ganz gut gefallen - zumal man dann eine solche Maschine von vornherein nur mit minimalen Usern einrichtet und alle Dienste in die virtuellen Maschinen schiebt.

Allerdings hab ich schon gemerkt, das mein simon etwas unterdimensioniert ist, wenn man damit Virtualisierung machen will. Aber so ein Hetzner DS 5000 oder 7000 mit extra Speicher könnte da schon ganz gut passen