J and I and Me
Meine völlig subjektiven Eindrücke von Ubuntu
Ich habe in der letzten Zeit ein wenig mit Ubuntu Linux auf verschiedenen eee PCs herumexperimentiert. Die Erkenntnisse, die ich dabei gewonnen habe, würde ich gerne hier der geneigten Öffentlichkeit mitteilen. Vorab folgendens:
- Ich bin ein Mac User. Nicht aus ideologischer Überzeugung, sondern weil ich mit Macs am besten zurecht komme und sie NeXTstep am meisten ähneln, womit ich vorher gearbeitet habe.
- Ich habe mit Linux schon 1992 oder 1993 angefangen zu experimentieren, damals in 0.96. Davor habe ich auch schon mit Coherent herumgebastelt. Ich habe sogar Geld als Linux-Admin verdient. Ich bin also kein Neuling und wünsche Linux alles erdenklich Gute. Außerdem arbeite ich selber bei einer Open-Source-Firma.
Fangen wir an mit der Installation von Ubuntu Netbook Remix (UNR) 9.04 auf eine eeePC 701. Das ist der ursprünglich eeePC, noch mit Xandros Linux. Den wollte ich auf UNR umrüsten, weil das für mich gegenüber Xandros die bessere Alternative ist. Ein Grund ist der große Verbreitungsgrad von UNR und das bessere Software-Angebot. Außerdem zweifel ich, dass das Xandros langfristig weiter unterstützt wird. Die Installation von UNR war auch einfach. Am Ende hat man einen einfach zu bedienenden Rechner mit einem schönen Menü, der jede Menge aktuelle Software hat. Nur benutzen kann man ihn nicht. Das Menü ist mit grafischen Animationen verziert. Der eeePC ist nicht dazu in der Lage, diese schnell genug anzuzeigen, so dass die Oberfläche tatsächlich fast nicht benutzbar ist. Das ist erstaunlich, denn zuvor hatte ich auf dem Rechner schon mal viele lustige Grafik-Effekte mit der Linux-Distribution am Laufen, die heute
easypeasy heißt. Die Lösung findet man nach eine Suche im Netz zum Beispiel
hier. Es fehlt lediglich eine Zeile in einer Konfigurationsdatei. Erfahrung hier: Tolle Software-Auswahl, tolles Menü, aber auf dem eee PC 701 kein Plug and Play. Ein "normaler" Anwender hätte das Handtuch geworfen, weil es schlicht nicht ordentlich funktioniert - und das auf dem Rechner, der sehr lange bei Amazon der am besten verkaufte Laptop war.
Auf meinen neuen eee PC 1011HA sollte Ubuntu Desktop 9.10 drauf, obwohl der Test in der c't dem 1011HA eine schlechte Linux-Kompatibilität bescheinigt hat. Mit 9.10 funktionieren WLAN und Netz problemlos, während 9.04 hier noch Probleme machte. Ich habe noch in der Beta-Phase von 9.10 einige Releases installiert. Problem ist die Grafik, aber dank
diesem Thread aus dem Ubuntu-Forum ein lösbares Problem. Allerdings hat irgendein Beta-Update dann den Installation des Grafik-Treibers kaputt gemacht, so dass ich dann neu installieren musste. Allerdings habe ich Fedora 11 ausprobiert, um auch mal davon einen Eindruck zu bekommen. Auch bei Fedora muss man den Grafik-Treiber nachinstallieren, eine Anleitung gibt es
hier. Fedora funktioniert gut, aber mir persönlich gefällt die Oberfläche von Ubuntu besser und auch der Package-Manager von Ubuntu ist eher mein Fall. Außerdem gibt es mit Ubuntu One auch einen Service, um 2GB Daten auf einem Server kostenlos zu parken, was Fedora nicht bietet. Keine großen Themen, aber insgesamt bin ich dann wieder zu Ubuntu gewechselt, nachdem 9.10 Release draußen war. Erstaunlicherweise funktioniert fast alles - Hibernate, Suspend, Sound, Grafik, WebCam - bis auf das interne Mikro. Ein externes geht, wenn auch verrauscht. Skype und VMware Player sind ebenfalls leicht nachinstallierbar.
Was mich wirklich wundert ist allerdings, dass einige Ubuntu Packages einfach nicht funktionieren. eToys funktioniert schlicht nicht und dazu gibt es auch einen Bug-Report. Dabei startet das Programm noch nicht einmal. Ebenfalls habe ich sugar nicht zum Laufen gebracht - die Oberfläche des OLPC (One Laptop Per Child)-Projekts. Hier mag es sein, dass ich etwas falsch gemacht habe, aber es gibt auch dort einen Bug-Report, der besagt, dass sugar einfach nicht startet. Nun sind dies keine sehr wichtigen Pakete, aber es ist schon erstaunlich, wie schlicht nicht lauffähige Software in ein Release kommt.
Ingesamt also überwindbare Probleme. Aber es bleibt die Frage, warum man überhaupt Ubuntu nutzen sollte - jenseits des "Es ist freie Software und es fühlt sich gut an!". Immerhin ist der Anspruch von Ubuntu ja, den
Bug 1 von Ubuntu zu fixen. Meiner Ansicht nach ist ein wesentlicher Vorteil die virtuellen Desktops. Eigentlich ist das ein Feature, dass X Window Manager schon lange anbieten. Man kann tatsächlich mehrere Arbeitsflächen einrichten, die jeweils Anwendungen für bestimmte Aufgaben wie Kommunikation (EMail, Skype, IM) oder konkrete Arbeit (OpenOffice) enthalten. Dadurch kann man tatsächlich diese Aufgaben konsequent voneinander trennen. Lustigerweise geht das viel besser als unter Mac OS X mit Spaces. Das liegt meiner Ansicht nach daran, dass die Desktops tatsächlich getrennt sind. Alt+Tab beispielsweise schaltet nur zwischen den Fenstern im aktuellen Desktop um. bei Mac OS X schaltet es zwischen alle Fenster um. Außerdem kann man Fenster auf einem oder allen Desktops anzeigen lassen. Alles keine Innovationen, sondern schon lange üblich bei Linux - aber eben weder unter Windows noch Mac OS X und ein Feature, dass ich in Mac OS X auch gerne sehen würde.
Ansonsten bin ich nicht sicher, ob ich Microsoft Office Mac gegen OpenOffice eintauschen würde, denn ich bin auf weitgehende Kompatibilität angewiesen. Aber es macht sicher Spaß, sich mal anderswo - also bei Ubuntu - umzusehen.
Fazit: Die Installation von UNR 9.0.4 auf dem eeePC 701 ist nicht akzeptabel. Die Installation auf dem einem derart weit verbreiteten Netbook sollte Plug and Play sein. Die Installation auf dem 1101HA ist erwartungskonform und man hätte den Problemen mit anderer Hardware wahrscheinlich entgehen können. Ubuntu insgesamt macht Spaß - wenn auch einige Dinge wie nicht funktionierende Software - einfach nicht akzeptabel sind.
Am Ende noch ein "Danke" an Canonical, Ubuntu und die Ubuntu-Community für die Software!
Labels: eeePC, Linux, Ubuntu
Über Architekturen und Perfektion
Wenn ich mir Architekturen ansehen, wie sie typischerweise präsentiert werden, muss ich an dieses Photo denken:

Ein völlig sauber, möglichst quadratisches Gebäude mit rechten Winkeln - das ist es, was man meistens als Ziel für die Architektur präsentiert bekommt. Oder die tatsächliche Architektur des Systems soll wirklich so aussehen. Meistens gibt es da aber dann die sprichwörtlichen "kleinen" Ausnahmen.
In Wirklichkeit erinnern mich die tatsächlichen Architekturen eher an das hier:

Das ist das Spiel "Villa Paletti", zum bekommen
bei Amazon
. Dabei geht es darum, dass jeder Spieler Säulen seiner Farbe ganz nach oben auf das Gebäude stellen muss, bis es einstürzt. Es gewinnt der Spieler mit den wertvollsten Säulen auf der obersten Ebene.
Wenn man sich die dabei entstehenden Konstruktionen anschaut, sind sie sicher ein Gräuel, wenn man ein Gebäude mit möglichst vielen rechten Winkeln und klaren Strukturen bevorzugt. Und natürlich ist das Ziel einer Software-Architektur nicht, dass sie am Ende einstürzt.
Aber die entstehenden Entwürfe haben auch Vorteile: Auf dem Bild kann man erkennen, dass die oberste Ebene nur von zwei Säulen unterstützt wird. Hier kommt man also mit einem sehr geringen Material-Einsatz aus - und bei einem klassischen Entwurf würde man sicher jede Ebene mindestens mit drei Säulen unterstützen. Es kann also im Laufe des Spiels eine Konstruktion entstehen, die mit weniger Material mehr Höhe erreicht, als dies bei einer im Vorhinein geplanten Konstruktion der Fall wäre.
Die andere interessante Eigenschaft des Spiels ist, dass man ständig evolutionär weiterentwickelt. Das Gebäude umfasst immer alle Bausteine und wird schrittweise "optimiert", also höher. Das ist bei dem Gebäude auf dem anderen Bild sicher nicht der Fall. Dort wird das Gebäude gebaut, es dann irgendwann "fertig" und kann danach eigentlich nicht mehr wirklich verändert werden. Bevor es "fertig" ist, kann man es nicht benutzen. Für Software ist das eine schlechte Eigenschaft, weil man dann die Software nicht ernsthaft weiterentwickeln kann.
Ich bin nun der Meinung, dass "Villa Paletti" eine wesentlich bessere Metapher für Software-Entwicklung ist als das Gebäude weiter oben. Warum?
- Software entsteht evolutionär. Es wird ständig weiterentwickelt, angepasst usw - ein klarer, rechteckiger Entwurf kann dabei nicht entstehen.
- Selbst wenn ein "sauberer" Entwurf entstehen könnte - das "Villa Paletti"-Modell ist teilweise überlegen, wie man am Beispiel des Material-Einsatzes sieht.
Für die Software-Entwicklung bedeutet das aus meiner Sicht, dass wir uns von den klaren, rechteckigen Entwürfen verabschieden müssen - wir werden sie eh nicht realisieren können. Wenn man es dennoch versucht, landet man bei Stackenblocken, weil man es eben nicht schafft, alles in rechten Winkeln anzuordnen. Zu Stackenblocken gibt es unter
http://www.youtube.com/watch?v=QEN5-_93gQg ein sehr sehenswertes Video.
Das bedeutet aus meiner Sicht:
- Lebe damit, dass die Architektur nicht perfekt sein wird!
- Beeinflusse aktiv, welche Teile architekturell besser und schlechter sind. Wenn nicht alles perfekt sein kann, muss man dafür sorgen, dass zumindest die wichtigen Teile eine gute Architektur haben.
- Setze also Prioritäten: Probleme, mit denen man leben kann, sollte man nicht korrigieren. Beispielsweise ist ein sauberer Entwurf kein Wert an sich, sondern er hilft bei der Weiterentwicklung. Ein sauberer Entwurf für einen Teil, den man nicht weiterentwickeln wird, macht daher kaum Sinn.
- Entwickel daher die Architektur und die Software evolutionär weiter. Man kann nicht ein sauberes, neues Gebäude bauen - es wird früher oder später wieder umgebaut werden, das muss evolutionär passieren und das Umschalten auf das neue Gebäude wird nicht einfach sein.
Labels: Architektur
Noch Plätze frei: Spring: Performance, Skalierbarkeit & Betrieb am 3.11. in Düsseldorf
Am 3.11. findet in Düsseldorf der Event zu Spring: Performance, Skalierbarkeit & Betrieb statt.
Auf der Agenda steht:
- Monitoring und Performance Optimierungen mit Spring (Eberhard Wolff)
- Portabilität auf Framework-Level - Spring als Runtime (Agim Emruli)
- Hyperic HQ - Die Open-Source-Monitoring-Lösung (Agim Emruli)
- Tomcat und OSGi als Plattformen: Alternativen, Vor- und Nachteile (Eberhard Wolff)
Nähere Informationen finden Sie unter
http://spring-performance.eventbrite.com/. Dort können Sie sich auch registrieren. Es wird ein Unkostenbeitrag in Höhe von 99€ erhoben, für das leibliche Wohl ist gesorgt.
Labels: Betrieb, Düsseldorf, Performance, Skalierbarkeit, Spring
JAOO: Dritter Tag
Heute habe ich nur wenige Sessions besucht. In der Keynote hat Cameron Purdy nocheinmal die Vorteile von Java gegenüber C++. Daraus wollte er dann die Probleme von Java ableiten, die eine neue Sprache lösen müsste. Dort kamen Themen wie Startup Time, Memory Footprint, Full GC Pausen usw - meiner Meinung nach nicht wirklich die großen Probleme.
Dann habe ich noch den Schluss von Beat Schweglers Vortrag über Microsofts Cloud-Pläne mitbekommen und mich geärgert, dass ich nicht früher bei dem Talk war.
Gregor Hohpe sprach über Googles Cloud Ansatz. Dabei ging es um das Google File System, Big Table für Datenhaltung und Map Reduce für die Verteilung von Arbeit. Wie auch Urs Hölzle vor ihm gab das einen guten und interessante Einblick darin, wie Google arbeitet.
Schließlich habe ich noch den Vortrag von Rod Johnson, dem Chef der SpringSource Division bei VMware angehört. Dieser Vortrag zeigt sehr deutlich, wo die Chancen von SpringSource un VMWare liegen. Die Folien gibt es
hier - reinschauen lohnt sich. Fast alle anderen Folien finden sich im
Schedule der Konferenz.
Labels: Beat Schwegler, Gregor Hohpe, JAOO, Rod Johnson
Artikel zu Spring ROO
Hier findet sich ein Artikel meines Kollegen Mike Wiesner für Jaxenter über Spring ROO. Dabei handelt sich um einen Generator-basierten Ansatz für die Entwicklung von Spring-Anwendungen. Viel Spaß beim Lesen.
Labels: Mike Wiesner, ROO
JAOO: Tag 2
Zunächst ein Nachtrag zum ersten Tag: Ich war auch in einem Talk von Jonas Jacobi zu WebSockets. Interessant war dabei neben WebSockets auch das Stomp-Protokoll, mit dem man in JavaScript von ActiveMQ Mesages empfangen kann - und das sehr problemlos.
Der zweite Tag ging los mit einer Keynot von Simon Peyton-Jones (Microsoft Research) zu Haskell, einer funktionalen Programmiersprache, und zwar insbesondere zu dem Typ-System und der Modellierung von Klassen in dem System. Inhaltlich fand ich es sehr interessant, aber sicher auch eher schwer zu verstehen. Gleichzeitig zeigt die Keynote, dass Sprachen wieder ein Thema sind. Lustig ist vor allem, dass vor längerer Zeit ein Bekannter Haskell an der Uni lernen musste und sehr negativ dazu eingestellt war - weil es ihm akademisch und nicht praxisrelevant erschien. Jetzt scheint Haskell in der Nutzung auch außerhalb der Unix zumindest zuzulegen und Microsoft Research wird sicher nicht "einfach so" Experten in dieser Sprache eingestellt haben.
Den Start des von mir organisierten "Java Now" Tracks gab es auch eine Art Keynote. Rod Johnson, Erfinder von Spring und Chef der SpringSource-Division bei VMWare, sprach über den Trend zu Open Source und leichtgewichtigen Ansätzen bei Java. Ich fand diesen Vortrag vor allem wichtig, um auf die große Bedeutung von Open Source als Innovator bei Java hinzuweisen.
In diesem Sinne ging es dann weiter: Dalibor Topic (Sun) sprach über das OpenJDK-Projekt, dessen Leiter er ist. Neben den Innovationen wie Type Annotations habe ich vor allem mitgenommen, dass Java noch mehr Verbreitung findet, seit es Open Source ist. So steht es jetzt in jeder Linux-Distribution zur Verfügung und auch in vielen anderen Betriebssystemen wie beispielsweise BSD. Später zeigte Dalibor mir noch eine Grafik, die zeigt, dass es auch immer mehr Open-Source-Projekte gibt, die auf Java setzen. Also wird durch das OpenJDK-Projekt Java noch populärer.
Martin Lippert sprach dann über OSGi auf dem Server, meiner Meinung nach eines der wichtigsten Zukunftsthemen für Server-Java. Schön war, dass Martin auch der Meinung ist, dass der SpringSource dm Server in diesem Bereich im Moment die beste Lösung darstellt. Inhaltlich ging Martin neben den Grundlagen - also den Problemen, die man bei OSGi auf dem Server hat - auch auf die neuen Architektur-Herausforderungen wegen der Dynamik von OSGi ein. Ich denke, dass in diesem Feld noch einige interessante Ansätze möglich sein werden.
Kirk Pepperdine sprach über Latenzzeiten. Gerade bei automatisierten Börsen-Systemen können Latenzen sehr wichtig sein. In seinem Talk hat er dann einen vollständigen Ansatz zur Analyse von Performance-Problemen dargestellt - was für eine Stunde eine große Leistung ist.
Am Abend gab es dann noch eine Diskussion mit James O Coplien und mir bei der JavaGruppen zur Zukunft von Java. An dieser Stelle nochmal mein Dank an JavaGruppen und Martin Boel für die Organisation. Insgesamt gab es eine lebhafte Diskussion und ich hoffe, dass dabei klar geworden ist, dass Java und die JVM eine sehr positive Zukunft haben werden.
Labels: Dalibor Topic, James O Coplien, JAOO, Kirk Pepperdine, Martin Lippert, Rod Johnson
JAOO: Erster Tag
Ich bin gerade auf der
JAAO Konferenze in Dänemark und habe den ersten Tag erfolgreich hinter mich gebracht. Hier die Highlights:
- Rod Johnson hat über Spring ROO gesprochen. Passend dazu ist heute auch der zweite Release Candidate erschienen, siehe http://www.springsource.org/node/2024. Meiner Meinung nach eine sehr interessante Technologie, mit der man durch ein gutes Framework und einen Generator wesentlich bessere Produktivität erreichen kann. Vor allem muss man sich nicht mehr mit den Details von Maven etc. auseinandersetzen. Die breite Mehrheit der Zuhörer findet das auch und wollte nach Rods Nachfrage sich ROO auch anschauen!
- Interessant war auch die Präsentation von Graeme Rocher über Grails: Bekanntermaßen ist es ein sehr interessanter und produktiver Ansatz für die Entwicklung mit Groovy. Man kann über die mittlerweile 299 Plug Ins alles mögliche einbauen - Taxonomien, Tags usw.
- Urs Hölzle von Google sprach über energieeffiziente Rechenzentrum. Ich fand es spannend, dass einer der Gurus für VMs und Programmiersprachen nun in diesem Bereich tätig ist. Aber wenn man sich die Anzahl Server bei Google ansieht und die technischen Herausforderungen, ist das nachvollziehbar.
Für morgen steht dann der von mir organisierte Java-Track auf dem Programm...
Bitte wählen!
Am Sonntag ist Bundestagswahl. Ich möchte alle Leser dieses Blogs darum bitten, an der Wahl teilzunehmen und dabei eine demokratische Partei - also nicht NPD - zu wählen.
Und an dieser Stelle noch ein Hinweis an die NPD-Wähler unter den Lesern: Sie sind hier nicht erwünscht. Ich möchte nicht, dass die Ergebnisse meiner Arbeit von Nazis genutzt werden. Bitte bestellen Sie den Blog ab. Danke.
SE-Radio-Interview mit mir über Spring
Unter
http://www.se-radio.net/podcast/2009-09/spring-2009-eberhard-wolff gibt es eine Interview mit mir zum Spring-Framework - allerdings in Englisch. An dieser Stelle mein Dank an SE Radio und insbesondere Markus Völter für das Interviews.
Labels: SE-Radio, Spring