Book Meme
am 13.11.2008 um 21:48
In den Blogs, die ich abonniert hab, geht gerade das folgende sogenannte «Meme» um (Mirko und Rico habens auch schon gemacht):
- Grab the nearest book.
- Open it to page 56.
- Find the fifth sentence.
- Post the text of the sentence in your journal along with these instructions.
- Don’t dig for your favorite book, the cool book, or the intellectual one: pick the CLOSEST.
Bei mir ist es das Buch Das neue Garantiert zeichnen lernen und der Satz lautet:
Selbst die gewöhnlichsten Tätigkeiten lösen unsere tiefe Bewunderung aus.
:)
«Qt 4»-Tanz
am 13.04.2008 um 22:13
Was machen die Programmierer des GUI-Toolkits Qt, wenn sie eine neue geile Version von Qt rausgebracht haben? Genau, ein lustiges Video inklusive Qt-Musik und Qt-Tanz ;o).
Das Video gibts auf Youtube und auf der offiziellen Seite. Das ganze ist schon älter, aber immer noch lustig.
Filmtipps
am 7.04.2008 um 23:20
Von den Filmen, die ich in der letzten Zeit gesehen habe, finde ich die folgenden besonders empfehlenswert.
The Man from Earth

Ungewöhnlicher Science-Fiction-Film. Es geht um einen Mann, der nicht altert und schon 14 000 Jahre alt ist. Etwa alle 10 Jahre verlässt er seine bekannte Umgebung und zieht weiter, da sie sonst merken dass er anders ist und misstrauisch werden. Dieses Mal will der Geschichtsprofessor aber versuchen, es seinen Kollegen zu sagen und sie nicht einfach ohne ein Wort verlassen. Die Freunde glauben es ihm natürlich nicht und halten es für einen absurden Witz, aber spielen das «was wäre wenn»-Spiel mit. Dank seiner atmosphärischen Machart und der packenden Geschichte voller spannender Fragen ist dieser sehr gelungene Indie-Film auf meiner Liste der Lieblingsfilme. Was noch erwähnenswert ist, der Produzent des Films hat sich bei Benutzern von Bittorrent bedankt, da der Film so mehr Verbreitung als sonst gefunden hat :). (Wikipedia, IMDB)
Rabbit-Proof Fence (Long Walk Home)

Bewegendes Drama aus Australien. Drei Mädchen, die halb Aborigines und halb weisser Abstammung sind, werden gewaltsam von ihrer Mutter getrennt und in ein Erziehungsheim gesteckt. Dort ist ihnen verboten in ihrer Muttersprache zu sprechen und sie sollen «christlich» und englisch erzogen werden. Doch die drei wollen wieder nach Hause zu ihrer Mutter und entschliessen kurzerhand zu fliehen. Doch der Weg ist lang und sie werden von den Behörden verfolgt. (Wikipedia, IMDB)
Juno

US-amerikanische Komödie. Eine 16-jährige Schülerin wird vom ersten Mal mit ihrem schüchternen Freund gleich schwanger. Zuerst will sie das Kind abtreiben aber entschliesst sich dann doch es zu bekommen und zur Adoption freizugeben. Der Film überzeugt durch eine gute Geschichte und frische Dialoge mit viel Witz. (Wikipedia, IMDB)
About a Boy oder: Der Tag der toten Ente
Britische Komödie mit Hugh Grant und Rachel Weisz. Hab ich schon ein paar Mal gesehen aber ist immer wieder super :). (Wikipedia, IMDB)
Tödliche Versprechen (Eastern Promises)

Thriller über die russische Mafia in London mit Viggo Mortensen (Aragorn in Herr der Ringe), Vincent Cassel (Französischer Bösewicht), Naomi Watts (The Ring, King Kong) und Armin Mueller-Stahl (den ich vorher noch nicht kannte). Hat mir viel besser gefallen als zum Beispiel Departed, in dem im Vergleich zu Tödliche Versprechen nur sinnlos rumgeballert wird. (Wikipedia, IMDB)
Grosse Schritte in Open Source
am 29.03.2008 um 21:00
In der Welt der Software passiert im Moment viel, zumindest wenn man nach den grossen Versionsnummern geht ;). Nachfolgend eine Übersicht der Projekte, deren Entwicklung ich verfolge.
Python 3
![]()
Die finale Version Python 3.0 ist für August geplant und so wie ich das vom Lesen der Python-Dev-Mailingliste beurteilen kann, ist das ein realistisches Ziel. Bis jetzt ist Alpha 3 verfügbar, mit der man schon mal rumspielen und neue Features ausprobieren kann.
Ruby 2
![]()
Ruby 1.9 wurde an Weihnachten veröffentlicht und Ruby 2.0 sollte nicht mehr allzu weit entfernt sein, vielleicht Ende dieses Jahres. In einem Video auf Youtube von Yukihiro «Matz» Matsumoto, dem Designer von Ruby, werden die wichtigsten Änderungen in Ruby 1.9 und 2.0 erklärt.
OpenJDK 7
![]()
Java war bisher auf Linux nicht gern gesehen weil die JRE/JDK von Sun proprietär war und die freien Implementierungen unvollständig. Mittlerweile hat aber Sun angefangen, die Bestandteile von Java unter der GPL zu veröffentlichen. Die Projekte OpenJDK und IcedTea arbeiten daran, das JDK vollständig zu freier Software zu machen. Damit ist Java auf Linux kein Fremdobjekt mehr und es wird vielleicht einen Schub geben für mehr Java-Projekte in der FOSS-Welt. Ausserdem braucht man dann hoffentlich keine 32-Bit-Version mehr zu verwenden um Webstart und das Browser-Plugin zu kriegen…
Perl 6
Nur ein Witz, konnte nicht widerstehen ;).
Firefox 3
Beta 4 kam am 10. März raus und die finale Version sollte in 2 bis 3 Monaten draussen sein und kommt mit vielen Verbesserungen:
- Bessere Integration unter Linux und Mac OS X (Plattformspezifisches Theme und Widgets)
- Speicherverbrauch und Lecks drastisch reduziert
- Geschwindigkeit von JavaScript gegenüber Firefox 2 verdreifacht, in Sunspider-Benchmark doppelt so schnell wie Safari und fünfmal so schnell wie Internet Explorer 7 :)
- Neues System für Lesezeichen (SQLite-Datenbank, mit Tags organisierbar)
- Intelligente Adresszeile (sucht irgendwo in Titel oder URL anstatt nur Anfang von URL, am häufigsten verwendete Einträge zuerst)
- Ganzseitenzoom möglich (nicht nur Text vergrössern)
- Dialog «Passwort merken?» abgeschafft, jetzt als Leiste oben wie bei geblockten Popups
- Besteht Acid2-Browsertest
KDE 4
Im Januar ist KDE 4.0 erschienen und obwohl ich noch nicht umgestiegen bin, ziehe ich es mit 4.1 ernsthaft in Erwägung.
Mercurial 1
Vor ein paar Tagen ist die magische Version 1.0 des verteilten Versionsverwaltungssystems Mercurial erschienen. Das fast vollständig in Python geschriebene Projekt ist eines der drei beliebtesten verteilten Versionsverwaltungssysteme, zum Beispiel wird es von Mozilla und Sun/OpenJDK verwendet. Die beiden anderen sind Bazaar (auch in Python) und Git (von Linus Torvalds, in C/Shell/Perl). Wer noch keines einsetzt, oder zumindest ausprobiert hat, verpasst was – Subversion ist out ;). Eine gute Einführung in die Konzepte dieser Systeme gibts auf betterexplained.com.
(Die hübschen Datei-Icons für die Programmiersprachen sind übrigens vom Tango-Projekt, danke!)
This recording sponsored by
am 3.02.2008 um 18:59
Beim Schauen der Videos von RubyConf 2007 ist mir was aufgefallen. Am Anfang erscheint immer die Nennung des Sponsors (Microsoft), welche mit folgendem Wortlaut eingeleitet wird:
this recording sponsored by
Meine ich das nur oder klingt das irgendwie komisch? Lustigerweise finde ich den Ausdruck recording sponsored by nicht komisch, aber mit dem this zusammen habe ich beim Lesen irgendwie die Erwartung, dass ein vollständiger Satz folgt, also noch mit einem is vor dem sponsored.
Ich denke nicht dass es falsch ist, das ist unwahrscheinlich, aber ich finde es interessant wie verwirrend manchmal das eigene Sprachgefühl sein kann.
Man merkt dass Prüfungszeit ist, wenn
am 31.01.2008 um 17:48
… man bei folgendem Bild an einen XML-Tag denken muss:
Dann hat man nämlich höchstwahrscheinlich ein Trauma vom vielen XML (JSP, web.xml, ejb-jar.xml) in den Modulen Internettechnologien oder Enterprise Computing ;). Das Bild ist übrigens aus einem der neuen SBB-Züge.
Zum Glück ist die Prüfungszeit für mich und viele andere seit gestern vorbei – allen, die noch Nachprüfungen haben, wünsche ich viel Glück! Jetzt habe ich wieder mal Zeit was anderes zu machen als zu lernen, zum Beispiel KDE 4.0 auszuprobieren oder zu bloggen, jee!
Automated Python Refactoring Using Type Inference
am 24.12.2007 um 15:50
Das ist der Titel der Studienarbeit von Reto Schüttel und mir, die wir am Freitag pünktlich um 17:00 eingereicht haben. Die Arbeit hat viel Zeit und Nerven gekostet, aber auch Freude gemacht und ich denke das Ergebnis kann sich sehen lassen :).
Übersetzt heisst der Titel soviel wie Automatisierte Python-Refactorings mit Typinferenz. Für PyDev, eine Eclipse-basierte IDE für Python, haben wir die wohl nützlichsten Refactorings implementiert, wie zum Beispiel Rename Method, Rename Class und Rename Attribute. Screenshots und unseren Bericht gibts auf dem Wiki. Interessierte Python-Programmierer können das ganze relativ einfach über unsere Update-Site für Eclipse ausprobieren.
Nachfolgend noch das Abstract unserer Arbeit. Ach ja, und frohe Weihnachten :)!
Software development is often an unpredictable process, the goals change, an approach turns out to be inefficient or a complex part has to be split up into several pieces. Keeping up with this process often results in the need to make structural changes, so called refactorings. Automating these kinds of adjustments is often desirable, as it saves time and reduces the risk of faults.
There are several development environments available for the Python programming language, but only a few offer automatic refactoring. The aim of this project was to extend the refactoring support of PyDev, an Eclipse-based development environment. We implemented the following refactorings:
- Generate Docstring
- Inline Local Variable
- Extract Local Variable
- Rename Local Variable
- Rename Method
- Rename Attribute
- Rename Class
To be able to automatically rename methods, classes or attributes, it is essential to know the types of all involved objects. In a dynamically typed language like Python, the exact type of objects is not known before running the actual program. To still be able to determine these types in advance, a heuristic called type inference was implemented. Although the type inference heuristic still has some limitations, it turned out to be very powerful and an essential helper.
As more advanced refactorings often depend on knowing the type of objects, the type inference engine will make implementing these refactorings much simpler. But the engine also appears to be useful for many other common IDE tasks, like finding the references of a given attribute or method, searching for a definition or providing overall structural information.
Besser erklärt
am 25.11.2007 um 17:21
Wie funktionieren eigentlich verteilte Versionsverwaltungssysteme? Ist der Satz von Pythagoras nur für Dreiecke? Was ist schon wieder der Unterschied zwischen Permutationen und Kombinationen?
Diese und andere interessante Fragen werden auf der Seite betterexplained.com auf verschiedene Arten (unterschiedliche Menschen brauchen unterschiedliche Erklärungen) angegangen und mit anschaulichen Bildern verständlich erklärt. Es ist das Blog von Kalid Azad, der gerne seine Erkenntnisse mit anderen teilt und der Spass daran hat, (komplizierte) Sachverhalte verständlich zu erklären.
Die Themen sind Mathematik, Programmieren und Kommunikation. Ich habe noch nicht alles angeschaut, aber beim Lesen der Artikel ist mir schon ein paar Mal ein Licht aufgegangen – ein gutes Gefühl :).
Posh Spice Melanie C
am 8.11.2007 um 21:32
Wahrscheinlich zählt das als unnötiges Wissen, aber dass Melanie C nicht Posh Spice war (oder besser ist), weiss ich trotzdem. Die 20-Minuten-Redaktion anscheinend nicht, denn in der heutigen Ausgabe war von Posh Spice Melanie C die Rede, autsch. Dabei war sie doch die Sportliche und Victoria Beckham die feudale ;).
Apropos Fehler in Zeitungen, hat jemand auch bemerkt dass in der Heute vom Dienstag was schief war:
Rechts steht auf dem Bild der bekannte Platzhaltertext Lorem ipsum (dolor sit amet), wie der wohl da hin geraten ist?
alt Bundesrat?
am 27.10.2007 um 00:47
Weiss eigentlich jemand warum man das Wort für einen ehemaligen Bundesrat alt Bundesrat schreibt und nicht etwa Altbundesrat oder Alt-Bundesrat? Jedesmal wenn ich das Wort lese, springt es mich förmlich an und meine automatische Rechtschreibprüfung schreit «Fehler, Fehler!» Aber falsch kann es ja nicht sein, sonst hätte ich das auch schon anders geschrieben gesehen. Ich vermute mal es ist Tradition, etwas alt Hergebrachtes sozusagen ;).
Wie man alltägliche Dinge schneller machen kann
am 16.10.2007 um 22:04
Auf waitless.org wird mit anschaulichen und witzigen Videos gezeigt, wie man alltägliche Dinge schneller machen kann.
Zum Beispiel, wie man ein Ei locker in 10 Sekunden schält. Oder wie man sein T-Shirt ähnlich wie Jim Carrey in Bruce Allmächtig in null Komma nichts auszieht. Oder wie man Schuhe mit einem Handgriff bindet. Andere Tricks, wie das Loswerden von lästigem Sand sind auch dabei.
Den Trick mit dem T-Shirt habe ich schon gelernt, und andere werde ich bei Gelegenheit mal ausprobieren. Es lohnt sich, da mal reinzuschauen :).
Hüpfender Roboter
am 13.10.2007 um 16:06
Nach dem Roboter, der wie eine Motorsäge klingt hier ein Video eines Roboters, der wie ein Frosch hüpfen kann: Robot Frog.
Er hat das Aussehen eines Frosches und die Gelenke sehen auch ziemlich ähnlich aus. Ich gespannt wann die ersten Roboter kommen, die genau den gleichen Muskelaufbau haben wie Menschen und über die gleiche Bewegungsvielfalt verfügen.
Wie neu geboren
am 7.09.2007 um 16:18
Wie neu geboren fühle ich mich seit dem 31. Juli 2007. Hier der Beweis ;).
Python 3.0 Alpha 1 verfügbar
am 1.09.2007 um 00:50
Die erste Alpha-Version von Python 3.0, auch bekannt als Python 3000 (scherzhaft nach dem voraussichtlichen Erscheinungsjahr benannt), ist auf der Python-Website verfügbar. Sie ist vor allem für Programmierer gedacht, die einen ersten Eindruck von Python 3 haben möchten.
Im Lauf des Jahres wird es noch mehrere Alpha-Versionen geben, im 2008 dann Betas und die finale Version ist für August 2008, also in einem Jahr geplant. Bin gespannt was zuerst draussen ist, Python 3 oder Ruby 2 – am Ende noch Perl 6 ;).
Bei Python habe ich ein gutes Gefühl, der ganze Prozess wird in diversen PEPs (Python Enhancement Proposals) ziemlich transparent dokumentiert und auch die Mailing-Liste Python 3000 ist informativ.
Diese Präsentation von Guido zeigt die wichtigsten Änderungen im Vergleich mit Python 2. Hier meine Zusammenfassung, mit Links zu den PEPs:
- Viele Altlasten (z. B. klassische Klassen) entfernt und generell Codebasis verbessert
bytesundstranstattstrundunicode, also Strings sind standardmässig Unicode-Strings, zu/vonbytesmuss explizit konvertiert werden- Ein-/Ausgabe überarbeitet, verschachtelbare Streams wie in Java, aber grundlegende Dinge bleiben einfach
- Neue String-Formatierung,
"{0.name} ({0.alter})".format(person)anstatt"%s (%i)" % (person.name, person.alter) - Abstrakte Basisklassen (ABCs) für eingebaute und eigene Klassen; ähnlich wie Interfaces von Java, nur dass Methoden auch Implementierung haben können und dank Mehrfachvererbung von mehreren abgeleitet werden kann
- Optionale Annotationen für Funktionsparameter wie zum Beispiel
def haul(item: Haulable, *vargs: PackAnimal), die für Python selber keine Bedeutung haben, aber zum Beispiel für generische Funktionen verwendet werden können range(),zip(),map(),filter()geben Iteratoren zurückdict.keys()und ähnliche geben nicht mehr eine Liste zurück, sondern eine View (Sicht), was schneller ist
Ach ja, Python 3 wird keine geschweiften Klammern anstelle von Einrückung verwenden, hier Pythons Meinung dazu:
>>> from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance
:). python -c 'import this' ist auch was lustiges zum ausprobieren.
Prüfungen hinter mir
am 29.08.2007 um 23:12
Jee! Heute Morgen hatte ich die letzte von 8 Abschlussprüfungen im Sommersemester 2007, und zwar über Wissensbasierte Systeme. Die ganze Prüfungszeit war schon ziemlich stressig, aber insgesamt ists mir gut ergangen und ich denke dass ich überall durchgekommen bin. Jetzt kann ich endlich wieder mal was anderes machen als Lernen :).
