Freitag, 21. Dezember 2012

xLooking Forwardx "The Path We Tread" - Rezension

Hardcore Bands gibt es viele. Solche, die mir richtig gut gefallen nicht so viele.

Auf xLooking Forwardx bin ich zufällig gestoßen, beim Stöbern auf revhq. Wenn ich mich richtig erinnere durch einen Querverweis von einer Seite zu Good Clean Fun.

Nach dem Probehören auf Amazon habe ich mir dann das Album "The Path we Tread" von xLooking Forwardx" dort gekauft. Und ich muss sagen: Sehr gut!

xLooking Forwardx ist eine sehr gelungene Mischung aus klassischem Hardcore und "modernem", druckvollen Sound. Das Tempo ist überwiegend im "normalen" Hardcorebereich (was manche wohl als "schnell" bezeichnen), mit ein paar eingestreuten Mid-Tempo Breakdowns. Das ganze ist 29 min bzw. 19 Songs lang.

Ansonsten ist die Platte ziemlich schnörkeslos: keine Soli, keine ausufernden Intros, kaum Crew-Vocals. Einfach Hardcore mit relativ viel Gesang. Und vor allem: energie-geladen! Aber auch hier: einfach nur Energie, frei von Aggression usw.

Wer Bands wie Good Clean Fun oder auch die aktuelle Pennywise mag, der sollte mal ein Ohr auf xLooking Forwardx werfen. Auch, wenn die Platte schon aus dem Jahr 2005 stammt.

Eine kleine, interessanten Randnotiz noch zum Schluss: Die deutsche Wikipedia hat eine Seite zu xLooking Forwardx - das Englische Wikipedia nicht. Normal ist es eher andersherum. Zumal die Band aus den USA stammt.

Das ist es wieder... Synaptic

Ich habe in der Vergangenheit schon mehrfach erwähnt, dass das Software-Center und ich nicht die besten Freunde sind. Seit ein paar Tagen ist es auch wieder soweit: Synaptic ist zurück auf dem System.

Der Grund war gar nicht unbedingt, dass ich mit Synaptic besser Software nachinstallieren kann (macht ich so oder so kaum), sondern das man mit Synaptic viel besser und umfangreicher Infos zu den Paketen bekommt.

Für den Wikiartikel zu den Unity Lenses braucht ich ein paar Infos, die in der Paketbeschreibung drin sind. Im Software-Center habe ich diese nur teilweise gefunden. Unter Synaptic war alles schön übersichtlich aufbereitet.

Klar, man kann auch im Terminal ein "apt-cache show PAKETNAME" eingegeben und bekommt die Info auch. Aber gerade wenn man Infos zu mehreren Paketen braucht ist die kombinierte tabellarischen und Reiter-Darstellung von Synaptic übersichtlicher und kompakter.

Zur Ehrenrettung des Software-Centers muss man vielleicht noch dazu sagen, dass das Software-Center (bewußt?) nicht für diese technischen Dinge konzipiert ist. Es ist wohl eher für die einfache Installation von Software (sowohl aus den Quellen als kommerziell) ausgelegt und von Konzept und Bedienung an die gängigen App-Stores für Smartphones und Tablets angelehnt.

Na ja, jedenfalls ist nach Synaptic dann wieder zurück gekehrt. Und das nach nur ca. 8 Wochen Abwesenheit (vor 8 Wochen habe ich den letzten Rechner von mir mit GUI von 10.04 LTS aus 12.04 LTS aktualisiert).

Sonntag, 16. Dezember 2012

Tschüß Y! Mail - Welcome K-9!

Ich habe schon seit gefühlt ewiger Zeit ein Mail-Konto bei Yahoo. Und der Rest der Familie auch. Daher war es auch naheliegend, Yahoo! Mail für Android auf dem Samsung Galaxy Tab zu installieren, als wir dieses vor ein paar Monaten neu gekauft hatten.

Die bisherige Version war zwar nicht wirklich ein Glanzstück an Usability und Optik, aber war brauchbar und lief stabil.

Vor ein paar Tagen hat Yahoo die Webmail-Oberfläche aktualisiert (was IMHO gut gelungen ist, aber das ist ein anderes Thema) und mehr oder minder zeitgleich Y! Mail for Android runderneuert. Die Optik ist in der Tat besser (und einheitlich mit der Weboberfläche) und die Benutzbarkeit (ebenfalls quasi identisch mit der Weboberfläche) ist auch besser, ABER: die Version ist instabil wie sonst was.

Schlecht war schon, dass ich drei von fünf Konten erst Mal neu einrichten musste, weil die Datenübernahme aus der alten Version nicht funktioniert hat. Gut, dass macht man 1x, wäre als verschmerzbar gewesen. Wirklich schlimm war aber, dass das Prog bei jedem (!) Löschen einer Mail - egal ob Eingang, Ausgang oder Spam-Ordner - mit einer perfekten Zuverlässigkeit abgestürzt ist. Da das Löschen einer Mail nun mal eine Operation ist, die oft durchgeführt wird, hat sich das Programm damit als unbrauchbar deklassiert. Hier besteht dringendster Nachbesserungsbedarf seitens Yahoo. Na ja, besser wäre vielleicht, wenn Yahoo diese Version erst gar nicht veröffentlicht hätte...

Ich habe dann den "Tipp" bekommen, mal K-9 Mail zu probieren. Habe ich auch. Fazit nach 3 Tagen Nutzung: viel besser. Erst Mal ist es stabil (was ja eigentlich Grundvoraussetzung sein sollte), der Umgang mit mehreren Konten ist ganz gut gelöst, die Funktionalität ist sehr gut - alles drin, alles dran. Nur die Optik ist ein wenig... na ja, lahm. Aber da es uns ja nur um die Funktion geht ;-) kann man damit ganz gut leben.

Yahoo! Mail for Android hat dann damit erst Mal ausgedient.

Montag, 22. Oktober 2012

Canonical das Root-Recht entziehen - Kommentar zum Editorial LinuxUser 11.2012

"Auf meinen Rechnern jedenfalls entziehe ich Canonical das Root-Recht, ein für allemal". So lautet der letzte Satz des Editorials von Jörg Luther, seines Zeichens Chefredakteur des LinuxUser Magazins. Das komplette Editorial kann man online im Internet nachlesen: Link. In diesem besagten Editorial schießt Herr Luther ziemlich scharf gegen Ubuntu bzw. im Detail gegen die Unity Shopping Lens und den Umgang mit Kritik seitens Canonical zur selbigen.

Ich weiß nicht, wie andere das Empfinden, aber nach meinem Empfinden neigt Herr Luther in seinen Editorialen zu übertrieben negativen und stark polarisierenden Sichtweisen. Die Editorale seines Kollegen Jan Kleinert, Chefredakteur des Linux Magazins, gefallen mir stilistisch da deutlich besser - aber das ist ein anderes Thema. Also, Herr Luther schießt scharf gegen Canonical und Mark Shuttelworth. Das ist durchaus legitim - und in Editorialen auch nicht unüblich - schließlich stellt es seine persönliche Meinung dar.

Meckern kann jeder, Konsequenzen daraus ziehen und Dinge besser machen nicht. Eine Konsequenz von Herrn Luther leitet sich aus dem letzten Satz des Editorials ab, welcher auch oben zitiert ist: Ubuntu-freie Rechner. Kontrollieren kann das der Leser so oder so nicht, aber ich glaube ihm das Mal. Nun, reicht das? Liest man das Editorial würde ich sagen: nein, reicht nicht. Schließlich wirft er Canonical mangelnden Schutz der Privatsphäre der Nutzer vor und bezeichnet das "wie" des Umgang mit Kritikern zum diesem Thema als "bodenlose Frechheit". Da wäre es doch z.B. nur konsequent, die Leser von LinuxUser zu schützen und bei zukünftigen Ausgabe keine Ubuntu-Version auf CD oder DVD beizulegen. Wer will wissentlich Software verbreiten, die die Privätsphäre untergräbt? Ich werde das dann mal beobachten. Oder vielleicht überwiegt dann doch der Kommerz-Gedanken - LinuxUser bezahlt sich ja auch nicht von selbst - und es liegt Ubuntu bei. Trotz Kritik "zieht" Ubuntu immer noch und ist ziemlich populär.

Ein bisschen blöd ist natürlich für Herrn Luther vielleicht auch, dass es im gleichen Verlag ein Magazin Names "Ubuntu User" gibt, welches allein wegen der Existenz Ubuntus Geld verdient. Na ja, vielleicht entzieht Herr Luther den Redakteuren ja das Zugangsrecht zu seinem Büro? Nein, wohl kaum. Die können ja nichts dafür, was Canonical veranstaltet. Und jeder darf ja nach wie vor "seine" Linux-Distribution wählen. Und wer Ubuntu nicht will - so wie Herr Luther - der hat bekanntlich reichlich Alternativen. Auch ohne, dass jemand Disto-Bashing betreibt.

Sonntag, 21. Oktober 2012

Upgrade auf Ubuntu 12.10

Heute morgen habe ich den 1. Rechner von Ubuntu 12.04 auf 12.10 upgegradet. Der gewählte Weg war die Softwareaktualisierung. Also erst Mal die "Neue Version" Benachrichtigung auf "alle" (statt nur LTS) umgestellt und los geht's. Gut, bei nur DSL1000 dauert der Download halt ein wenig...

Da ich nur sehr wenig zusätzliche Software außer der der Standardinstallation drauf habe - und wenn dann aus den offiziellen Quellen - lief das Upgrade auf Quantal ohne Probleme durch.

Dann kam ein immer noch spannender Moment: der 1. Start. Im GRUB2 Menü steht nur noch "Ubuntu", ohne Angabe der Kernel-Version. Nicht schlimm, mal sehen was da steht, wenn mehr als ein Kernel installiert ist. Beim Login-Bildschirm gibt's einen neuen Punkt, über den man sich auf entfernten Rechner via RDP anmelden kann. Werde ich bei Gelegenheit mal mit dem 2. Rechner testen. Wer jetzt mehr wissen möchte gibt am besten in der Suchmaschine seiner Wahl als Suchbegriff "ubuntu 12.10 remote login" ein.

Optik hat sich leicht geändert, aber das ist mir ziemlich gleich. Was direkt ins Auge fällt: zwei neue Icons im Starter. Eins für Amazon, eins für das Ubuntu One Music Store. Beides sind WebApps. Beide grundsätzlich nicht verkehrt, aber nix, was ich im Starter brauche. Also gerade gelöscht.

Als nächstes dann mal das viel und heiß diskutierte Thema angeschaut: Unity Shopping Lens. Funktioniert ;-) und sogar ziemlich flott. Was das jetzt bringen soll (mal völlig unabhängig davon, ob irgendwer dafür Geld bekommt) weiß ich nicht. Wenn ich was Suche, dann gehe ich direkt zu Amazon. Gibt ja auch eine Webapp... Na ja, da ich aber relativ wenig über Dash startet bleibt's erst Mal aktiv.

Unter Ubuntu 12.04 war Rhythmbox ja ein echtes Problemkind. Die Situation hat sich inzwischen ein bisschen geändert: Eine funktionierende Amazon Integration gibt's so oder so nicht mehr und der iPod weicht demnächsten einem Samsung Galaxy. Bleibt also nur noch das Thema CD-Rippen, welches unter 12.04 nicht funktioniert. Unter 12.10 zeigte ein 1. schneller Test, dass es funktioniert. Sehr schön.

Ansonsten ist das Systemmenü (das rechts oben über das "Zahnrad"-Symbol erreichbar ist) aufgeräumt und ist meines Erachtens besser strukturiert. Allerdings ist die Aktualisierungs-Verwaltung nicht mehr enthalten? Warum auch immer. Diese ist aber nach wie vor über das Dash erreichbar.

Alles anderen, was ich so nutze, funktioniert auch ohne Probleme (Shotwell, Emphathy).

Alles in allem würde ich sagen war das - zumindest bei mir - eines der problemlosesten Distribution-Upgades, die ich bisher mit Ubuntu gemacht habe.

Donnerstag, 4. Oktober 2012

Grafikformate online konvertieren

Aktuell hatte ich das "Problem", dass ich eine .jpg Datei nur mit einer Größe von 100x100 Pixeln bei 100 DPI hatte, sie jetzt aber größer brauchte. Wie das so ist war das Original, aus dem die kleine Datei generiert wurde, nicht mehr zu finden...

Das Bild in der Datei ist simpel: weißer Hintergrund, darauf mit schwarz und ein paar Graustufen ein Umriss gezeichnet.

Mein Plan: zuerst in eine .svg Datei konvertieren - die ist dann skalierbar - und dann wieder zurück in ein Pixel-Format.

Mit GIMP geht das nicht - jedenfalls kann GIMP aus den Quellen unter Ubuntu 12.04 kein .svg speichern. Was installieren wollte ich nicht, zumal ich dann erst mal hätte lesen müssen, welches Prog das kann. Also flux Tante Google befragt und zur Webseite http://image.online-convert.com/ gelangt. Dort kann man ziemlich viel Formate - nicht nur Grafiken - konvertieren. Online & kostenlos.

Und: hat gut funktioniert! Bei der Konvertierung von JPG -> SVG gibt's diverse Optionen wie Anzahl der Farben, Kantenglättung usw. Beim Wandeln von SVG in ein Pixelformat kann man die Zielgröße, Auflösung in DPI und ein paar andere Sachen einstellen. Alles sehr schön und einfach zu bedienen. Und nach ein paar Sekunden bekommt man das konvertierte Bild zum Download.

Wer ab und an ein Datei konvertieren muss, für den ist die Seite sicherlich ein heißer Tipp!

Montag, 1. Oktober 2012

Pennywise "All or Nothing"- Rezension

Ok, ok - das Album ist nicht mehr neu. Erschienen am 1.5.2012, also heute genau vor fünf Monaten. Gekauft habe ich es vor ca. zwei Wochen. Hätte ich vorher gewusst, wie gut das ist, hätte ich es am 1.5. schon gekauft.

Pennywise höre ich schon sehr lange, so seit Mitte der Neunziger Jahre des letzten Jahrtausends ;-) . Nur waren alle Alben nach "Staight Ahead" nach meinem Geschmack nicht mehr sooo dolle. "The Fuse" (2005) und "Reason to believe" (2008) habe ich mir gar nicht mehr gekauft. Ein Indiz dafür, dass die Luft raus war, ist auch die Trennung des Sängers Jim Lindberg von der restlichen Band 2009.

2012 kam dann das neue Album "All or Nothing" mit dem neuen Sänger Zoli Teglas, seines Zeichens auch Sänger bei Ignite. Von Ignite habe ich auch Sachen. Nicht schlecht, aber nach meinem Geschmack auch nicht der Kracher. Daher war ich skeptisch bei der neuen Pennywise.

Aber: alles Quatsch! Pennywise ist wieder da, und das richtig. Endlich wieder straighter Melodic Hardcore mit sehr gutem Gesang von Zoli, der auch anders (=besser!) als bei Ignite klingt. Passt sehr gut zusammen. Tempo-mäßig spielt Pennywise ja so wie so in der schnelleren Liga, so auch auf diesem Album. Und es gibt auch einige Stücke, die recht "catchy" sind, ohne poppige zu wirken (wie z.B. das 5. Stück namens "Let us hear your voice" - einer meiner Favoriten). Ansonsten gibt's noch schöne Singalongs und Crew-Vocals.

Fazit: Sehr gutes Punkrock / Melodic Hardcore Album. Meines Erachtens das beste, was Pennywise seit über 10 Jahren abgeliefert haben.

Bob Mould "Silver Age" - Rezension

Bob Mould ist in der Alternative Musikszene hinreichend bekannt. Als Mitglied der heutzutage legendären Band Hüsker Dü und auch als Gründer und Kopf der (sogar kommerziell erfolgreichen) Band Sugar.

Hüsker Dü existiert seit 1987 nicht mehr und Sugar seit 1995. Bob Mould war seitdem musikalisch stets aktiv. Aber, sagen wir mal so: der kreative Output war nicht immer wirklich nach dem Gusto der Liebhaber von Hüsker Dü und Sugar.

Mit dem aktuellen, heute erschienen Release ändert sich dies jedoch mit Sicherheit: "Silver Age" heißt das aktuelle Album - und das vereint das beste von Hüsker Dü und Sugar. Spielfreudiger, straighter Alternative Rock mit durchaus poppigen Einschlag. Sehr gut und abwechlungsreich - und einfach - zu hören. Im Vergleich zu Sugar ist das Songtempo durchweg etwas höher. Macht aber nichts - dadurch rockt es ein wenig mehr.

Fazit: Bob Moulds kann's also immer noch. Wer Hüsker Dü oder Sugar mag, der sollte sich diesen Release auf jeden Fall zulegen. Es lohnt sich!

Wieder den Audioplayer wechseln - Dank Amazon?

Im April diesen Jahres hatte ich hier im Blog geschrieben, dass ich aufgrund diverser Enttäuschungen mit Rhythmbox wieder zu Banshee gewechselt bin (Link zum Artikel). Nun, es steht vielleicht wieder ein Wechsel an. Wobei ich das eigentlich gar nicht will - ich mag eher Systeme, die out-of-the-box laufen.

Banshee an sich kann noch nicht mal was dafür, dass ich wechsele. Banshee an sich ist ok - macht das, was es soll. Der Grund ist  vielmehr, dass Amazon den MP3-Shop geändert hat, so dass der Download via Banshee Plugin nicht mehr funktioniert.

Bis Ende September hat das so funktioniert: Das Plugin in der Menüleiste links wählen, gewünschtes Album / Lied / ... suchen und kaufen. Dann startet der Download und die Titel sind in der Bibliothek. Schön einfach. Seit der Umstellung funktioniert das alles auch bis nach dem Kauf. Dann passiert... nix. Neu ist der Hinweis auf den "Amazon Cloud Player". Wenn man den Download dort aus Banshee heraus starten will erhält man ein lapidares Hinweisfenster, dass das Herunterladen von mehreren Dateien unter Linux nicht mehr unterstützt wird. Wohlgemerkt, nachdem man den Kauf getätigt hat. Warum der Hinweis erst dann kommt ist im Moment das Geheimnis von Amazon. Frech ist das aber schon.

Gut, die Dateien - und das Geld - sind natürlich nicht weg. Wenn man via Browser auf die Amazon-Seite geht, sich einloggt und dann den Cloud Player ansteuert, kann man die Dateien herunterladen. Aber nur einzeln. Es ist wie ein "normaler" Dateidownload. Null Integration in den Audioplayer, bzw. Banshee. Alternative Workarounds findet man auch in diesem Thread im Forum von ubuntuusers.de .

Klar ist eine Alternative zu Amazon das Ubuntu One Store. Nur: Das hat (keine mir bekannte) Integration in Banshee unter Ubuntu 12.04. Und ist nun mal schlechter bestückt als Amazon.

Also, was tun? Wieder CDs kaufen? Dauerhaft keine echte Alternative ;-) Im Moment sieht es wohl eher so aus: Rhythmbox für Einkäufe im Ubuntu One Store, Amazon "wie früher" über den Browser - und was als Audioplayer? Ein heißer Kandidat ist Quod Libet.  Nutze ich auch unter Windows (wenn ich's mal benutze) und meiner "mal schnell was Testen" Installation von Ubuntu 12.04. Oder vielleicht funktioniert Rhytmbox unter Quantal wieder ootb so, wie es funktionieren soll...

Donnerstag, 13. September 2012

U1DB

U1DB ist Canonicals neue Datenbank zum Speichern und Synchroniseren von Daten. Synchronisieren heißt hier, dass "Desktop Daten" wie z.B. Kontaktdaten aus dem E-Mail Programm oder Kalenderdaten zwischen verschiedenen Rechner - und auch einem Serverdienst wie z.B. UbuntuOne - abgeglichen werden können. Wobei U1DB an sich die API beschreibt, und nicht die Datenbank selber.

Solche Dienste gibt es aber bekanntlich bereits - wozu programmiert Canonical also an einer eigenen Lösungen (die übrigens von Anfang an OpenSource ist und unter GNU LGPL v3 Lizenz steht)? Nun, neu ist die Synchronisation unter Ubuntu nicht. Genau genommen gibt es die schon länger, U1DB ist aber der 2. Anlauf. Grund: der 1. ist zwar nicht gescheitert, wurde aber wegen Problemen aufgegeben. Die 1. Variante setzte auch CouchDB als Datenbank-Server und lokal auf Desktopcouch. Dieser Ansatz war auch komplett in die Ubuntu Desktop Installationen integriert, wurde dann aber nach dem Release von Ubuntu 11.10 als "Auslaufmodell" deklariert, weil es bei Canonical zu Skalierungsproblemen mit CouchDB kam, die sich wohl nicht lösen ließen (wer darüber mehr erfahren möchte sollte einfach "ubuntu couchdb" als Suchbegriff in die Suchmaschine seiner Wahl eingeben). Der Nachfolger, und damit 2. Anlauf, ist jetzt U1DB. In Ubuntu 12.04 LTS konnte die Lösung noch nicht intergriert werden, dazu war die Zeit zu knapp. Für den kommenden Ubuntu Release 12.10 gibt es wohl eine Intergration, jedenfalls gibt es bereits fertige Pakete in den offiziellen Quellen.

Was heißt das jetzt für den Desktop-Nutzer? Nun, erst Mal nichts, da die Synchronisation der Daten transparent erfolgt, d.h. man selber hat keinen direkten Kontakt zu U1DB. Interessanter sind da schon die Pläne von Canonical, was die Integration in andere Betriebssysteme angeht. Diese sind nämlich recht ehrgeizig. U1DB soll - früher oder später - für alle gängigen Systeme verfügbar sein, also neben Linux auch MacOS, Windows, Android, iOS und eine Web-Schnittstelle. Dazu soll U1DB in Python, C, Vala, Go, C, C#, Objective C, Java und JavaScript umgesetzt werden. Die Implementierung in Python und C läuft, der aktuelle Release (Stand: 13.9.2012) ist 0.1.3. An der Vala und Go Umsetzung wird gearbeitet, es gibt aber noch keine Releases.

Schaut man in die API und Technik von U1DB, gibt es eine Reihe von Ähnlichkeiten mit CouchDB. Die Datenbank speichert text-basierte Daten im JSON-Format (ebenso wie CouchDB) - und ist alleine darauf ausgelegt. Binäre Daten (wie z.B. Bilder, Musik etc.) können nicht gespeichert werden. Des Weiteren beherrscht U1DB Mehrwege-Replikation inklusive Konfliktmanagement zwischen Datenbanken / Servern. Ein Feature, das CouchDB ebenfalls besitzt. Scheinbar war man bei Canonical mit der Funktionalität von CouchDB zufrieden und hat sich an diese angelehnt, wobei es keinerlei Kompatibilität gibt.

Als Speicher setzt U1DB lokal auf den meisten Plattformen auf die SQLite Datenbank. Was in sofern auch Sinn macht, als das Python, Android und iOS diese direkt mit an Bord haben. Auf der Projektseite wird aber betont, dass auch andere Datenbanken als Backend möglich sind. Die Go-Implementierung soll z.B. auf MongoDB setzen und auch über das Internet zugängliche U1DB-Server werden wohl eher auf MySQL und andere skalierbare Datenbanken setzen als auf SQLite.

Wie bereits erwähnt ist bisher "nur" die Python-Implementierung (mit in C geschriebenen Teilen fertig). Dies ist auch die Referenz-Implementierung. Wer sich also mit der API beschäftigen möchte, der sollte darauf zurück greifen. Das Python-Modul heißt einfach "u1db" und lässt sich auf bekanntem Wege via pip oder easy_install installieren. Übrigens ist U1DB für Python-Programmierer auch außerhalb von Ubuntu interessant, wenn eine einfache API zur persistenten Speicherung und Indizierung von JSON-Daten gesucht wird.

Zurück zu Ubuntu: U1DB wird unter Ubuntu sicherlich der kommende Standard zur Synchronisation von Daten. Wie gesagt, für den Nutzer transparent. Da sich U1DB noch in einem frühen Entwicklungsstadium befindet ist im Moment offen, wenn die API als stabil deklariert wird und die volle Integration in den Desktop abgeschlossen ist.

Sonntag, 2. September 2012

Redis und Python

Redis ist ein sehr schnelles Key-Value Store, zu Deutsch: Schlüssel-Werte Datenbank. Eine Besonderheit von Redis ist zusätzlich, dass es als Werte nicht nur einfache Strings kennt, sondern fünf verschiedenen Datentypen. Da die offizielle Dokumentation von Redis ganz hervorragend ist und auch in der September-Ausgabe von FreiesMagazin ein ausführlicher Artikel zu Redis vorhanden ist, wird an dieser Stelle auf eine weitere Beschreibung der Datenbank verzichtet und "nur" die Python-Anbindung näher beschrieben. In der Python-Welt erfreut sich Redis übrigens scheinbar recht großer Beliebtheit. Wird auf der Webseite des Python Package Index "redis" als Suchbegriff eingegeben, wird eine ziemliche lange Ergebnisliste angezeigt. So gibt es z.B. Anbindungen für Django, Flask und Celery an Redis sowie eine Vielzahl anderer Module, die Python auf die ein oder andere Weise mit Redis kombinieren.

Installation

Das empfohlene Python-Modul heißt einfach nur "redis" und lässt sich ganz einfach via pip oder easy_install installieren. Die die Ergebnisse der Abfragen des Redis-Servers werden von einem in Python implementierten Parser verarbeitet - was ohne Probleme funktioniert, aber nicht ultimativ schnell ist. Wer die volle Geschwindigkeit braucht, der installiert noch das Modul "hiredis" (via pip oder easy_install). So wird der in C geschriebene Parser inklusive Python-Bindings installiert. Die Entwickler nennen eine Geschwindigkeitssteigerung um das 10-fache, im Vergleich zum Python-Parser.

Mit dem Server verbinden

Das Verbinden mit einem laufenden Server ist einfach:

>>> r = redis.StrictRedis(host='localhost',port=6379,db=0)

Im Gegensatz zur z.B. Kommandozeile von Redis muss hier eine Datenbanknummer angegeben werden. Das Python-Modul erlaubt es übrigens nicht, die Datenbank im laufenden Betrieb zu wechseln (was z.B. via Redis Kommandozeile problemlos geht), weil die Datenbankverbindung dann nicht mehr "thread-safe" wäre. Wer also mehrere Datenbanken für sein Programm benötigt, der muss mehrere Instanzen von redis.StrictRedis(...) anlegen.

Connection Pooling

Im Hintergrund legt redis.StrictRedis(...) für jede neu Instanz einen neuen, eigenen Connection Pool an. Was je nach Anwendung aber gar nicht nötig ist. Aber es ist auch möglich, dass sich mehrere Instanzen einen Connection Pool teilen:

>>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
>>> r = redis.Redis(connection_pool=pool)

Auch hier gilt: Ein Wechsel der Datenbank innerhalb eines Connection Pools ist nicht möglich bzw. - andersherum - ein Connection Pool kann immer nur für eine Datenbank gelten.

Datentypen

Natürlich unterstützt das Python-Modul allen Datentypen voll. Dabei werden so gut wie alle Befehle von Redis 1:1 in Python umgesetzt, so dass die Redis Befehlsreferenz bei Fragen zu Rate gezogen werden kann. Im folgenden ein paar einfache Beispiele zur Nutzung der Datentypen aus Python heraus: Strings sind der einfachste Datentyp:
>>> r.set('foo','bar')
True
>>> r.get('foo')
'bar'

Und ein paar Beispiele zu Listen in Redis:
>>> r.lpush('liste','foo')
1L
>>> r.lpush('liste','bar')
2L
>>> r.lrange('liste',0,-1)
['bar', 'foo']

Hashs lassen sich mit den bekannten Befehlen generieren:
>>> r.hset('hash','foo','bar')
1L
>>> r.hset('hash','spam','egg')
1L

Werden alle Werte innerhalb eines Hashs abgefragt, dann wird ein Python Dictionary zurück geliefert:
>>> r.hgetall('hash')
{'foo': 'bar', 'spam': 'egg'}

bei Einzelwerten logischerweise ein String:
>>> r.hget('hash','foo')
'bar'

Hashs lassen sich auch direkt aus einem Python Dictionary generieren:
>>> my_dict = {'Rhythmbox':'Audio','Totem':'Video'}
>>> r.hmset('progs',my_dict)
>>> r.hmget('progs','Rhythmbox','Totem')
['Audio', 'Video']

Anlegen eines Redis-Sets aus Python heraus:
>>> r.sadd('set','foo')
1
>>> r.sadd('set','bar')
1

Wird versucht, einen bereits vorhanden Wert zu einem Redis-Set hinzuzufügen, dann liefert die Datenbank einfach "0" (für "False") zurück:
>>> r.sadd('set','bar')
0
Werden alle Werte aus einem Redis-Set abgefragt, wird als Ergebnis ein Python-Set zurück geliefert:
>>> r.smembers('set')
set(['foo', 'bar'])
Ordered Sets werden wie folgt in Redis via Python angelegt:
>>> r.zadd('orderset',10,'bar')
1
>>> r.zadd('orderset',5,'foo')
1
Oder alternativ auch:
>>> r.zadd('orderset',spam=1.0,egg=2.0)
2
Die als Ergebnis einer Abfrage eines Ordered Sets wird entweder eine Liste von Strings oder eine Liste von Tuplen geliefert. Je nach dem, ob die Gewichtung der Werte mit abgefragt wird oder nicht:

>>> r.zrange('orderset',0,-1,withscores=True)
[('spam', 1.0), ('egg', 2.0), ('foo', 5.0), ('bar', 10.0)]
>>> r.zrange('orderset',0,-1,withscores=True,desc=True)
[('bar', 10.0), ('foo', 5.0), ('egg', 2.0), ('spam', 1.0)]

Transaktionen

Das Python Modul unterstützt auch das Zusammenfassen von mehreren Befehlen zu einer atomaren Transaktion. Allerdings setzt das Modul nicht die Redis-Befehle multi und exec um, sondern geht den Weg über Pipelines:

>>> pipe = r.pipeline()
>>> pipe.set('counter',1)
<redis.client.StrictPipeline object at 0x18cfb10>
>>> pipe.set('wort','irgendwas')
<redis.client.StrictPipeline object at 0x18cfb10>
>>> pipe.incr('counter')
<redis.client.StrictPipeline object at 0x18cfb10>
>>> pipe.execute()
[True, True, 2]

Alle Befehle werden also gepuffert und erst nach dem Aufruf von pipe.execute() im Block atomar ausgeführt. Das Ergebnis der Ausführung der einzelnen Befehle wird als Liste zurück geliefert.

Weitere Dokumentation

Hier im Blogeintrag wurden zwar die meisten, aber nicht alle Möglichkeiten des Python Redis-Moduls gezeigt. Diese sind aber natürlich in der Dokumentation aufgeführt.

Redis und ORM

Zu guter Letzt sei noch erwähnt, dass es auch auch eine Reihe von Object Relational Mapperns (ORM) für Python und Redis gibt. Diese tragen aber teilweise noch eine relativ niedrige Versionsnummer. Weiter entwickelt - wenn auch noch im Beta-Stadium - scheint Redisco zu sein. Andere ORMs bringt eine Suche im Python Package Index hervor. 

Alle Beispiele hier im Blogartikel sind unter Ubuntu 12.04, Python 2.7, redis-py 2.6.2 und dem Redis Server 2.4.16 getestet.

Dienstag, 17. Juli 2012

OFF! "OFF"!" - Rezension

Vor nicht all zu langer Zeit ist das erste "full length" Album von OFF! erscheinen. Der Einfachheit halber lautet der Albumtitel genau so wie der Name der Band, also OFF!.

OFF! ist eine kalifornische Punkrock-Band rund um Keith Morris , seines Zeichens Gründungsmitglied von Black Flag und Sänger der Circle Jerks. Ein Urgestein der Punkrock-Szene also.

Apropos Black Flag: Soundmäßig liegt OFF! ziemlich nah an den frühen Black Flag, ohne aber wie eine Kopie zu klingen. Die Band schafft es dabei, den Punksound der frühen 80er (des letzten Jahrhunderts) in die Gegenwart zu transportieren und dabei frisch und up-to-date zu klingen. Wer also Black Flag oder generell kalifornischen "old school" Punkrock mag, der liegt mit OFF! auf jeden Fall richtig.

Noch ein Wort zum Thema "full length" Album: Punkrock (und Hardcore) Alben zeichnen sich ja selten durch episch lange Lieder aus. Manch einer legt sogar die Länge (oder besser: Kürze) der Songs als Qualitätsmaßstab an. Und hier liegt OFF! auf jeden Fall auch ganz weit vorne: 16 Titel, der kürzeste 41 s, der längste satte 1.36 min. Gesamtspielzeit etwas weniger als 16 Minuten. 16 sehr gute Minuten.

Mittwoch, 6. Juni 2012

Ubuntu Softwarecenter und die Suchfunktion

Das die Suchfunktion für Programme (und Paketen) im Softwarecenter von Ubuntu "bescheiden" ist, habe ich schon öfters in Blogeinträgen erwähnt.

Nun, ich möchte mich korrigieren: Die Suchfunktion ist schlecht. Schlecht in sofern, dass die Treffer für Suchbegriffe Ergebnisse liefern, welche schlichtweg nicht die Pakete bzw. Programme enthalten, die man eigentlich erwartet oder erwarten würde.

Dazu ein aktuelles Beispiel aus jüngster Erfahrung: Ich wollte unter Ubuntu 12.04 Precise Prolog installieren (nein, ich kann kein Prolog, ich wollte lediglich ein Prolog-Programm testen, welches ich in einem Buch gesehen hatte). Gibt man nun im Softwarecenter den Suchbegriff "Prolog" ein, erhält man zwei Treffer: Einen Editor namens "jedit" und für ein 2D-Zeichenprogramm namens "TGif" (was immer das mit Prolog zu tun hat...). Weit und breit kein Prolog-Compiler zu sehen... Gut, es könnte natürlich sein, dass es kein Prolog für Precise gibt, was aber aufgrund der Paketvielfalt unter Ubuntu relativ unwahrscheinlich ist. Außerdem ist Prolog ein etablierte Programmiersprache und sollte von daher vorhanden sein.

Nun ist mein Wissen um Prolog relativ klein. Ich weiß, dass es verschiedene Prolog-Compiler gibt, mehr aber nicht. Also habe ich die Paketsuche von packages.ubuntu.com besucht und hier auch den Suchbegriff "Prolog" eingeben. Erster Treffer: Das Paket "gprolog", welches den GNU Prolog Compiler enthält. Gibt man den Suchbegriff in Synaptic ein, findet man neben gprolog auch noch einen anderen Prolog-Compiler. Gibt man übrigens "GNU Prolog" als Suchbegriff im Softwarecenter ein, dann findet es auch den gleichnamige Compiler - was aber im Umkehrschluss für eine erfolgreiche Suche voraussetzt, dass der Suchende weiß, dass es GNU Prolog gibt.

Aber warum klappt das mit der Suche denn nicht im Softwarecenter? Ich habe ja überhaupt kein Problem damit, dass Canonical das Softwarecenter auch als Vertriebsplattform für kommerzielle Software und ähnliches nutzt und die Startansicht des Softwarecenters Werbung dafür enthält. Nur: Solange hier keine brauchbaren Ergebnisse für (triviale) Suchanfragen nach "normalen" Programmen geliefert werden, ist das Softwarecenter für mich kein vernünftiger Ersatz für andere grafische Paketmanager wie Synaptic & Co.

Freitag, 18. Mai 2012

Falsche Verknüpfung von .exe-Dateien unter Windows durch Adobe Reader

Ich weiß nicht, wie man es hin bekommt, aber es kann bei der Installation des Adobe Readers unter Windows passieren, dass alle .exe-Dateien mit dem Reader verknüpft sind. Sprich, die exe-Dateien lassen sich nicht mehr ausführen. Sehr lästig...

Wie gesagt, wie und unter welchen Umständen das passiert weiß ich nicht. Es ist aber schon ein mal einer Kollegin und ein mal einem Verwandten passiert. Bei letzterem musste ich dann ran um es zu richten.

Was der Fehler ist, ist ja klar, nämlich dass die Verknüpfung falsch ist. Wie man es behebt war mir aber nicht ganz klar. Man kann zwar die Verknüpfung der meisten Dateitypen von Anwendungsprogrammen (z.B. .docx, .pdf, .jpg usw.) unter Windows via GUI bearbeiten. Aber eben nicht für .exe. Was letztendlich wohl auch sinnvoll ist, damit man sich nicht aus Versehen sein System abschießt.

Mit ein  bisschen googlen habe ich folgenden, sehr brauchbaren Link gefunden: http://www.pcpowerguide.com/processes/exe/fix-exe-file-association-errors/

An diesem habe ich mich dann letztendlich bei der Rettung auch orientiert. Vor dem manuellen Eingriff in die Registry habe ich noch Microsoft Regclean runtergeladen und laufen lassen. Da Tool ist zwar uralt, gilt aber immer noch als bewährt, um Fehler in der Registry zu beheben. Wobei der oben beschriebene Fehler dadurch nicht behoben wird.

Bevor's weiter geht noch die obligatorische Warnung:

Beim manuellen Bearbeiten der Registry kann man - bewusst oder unbewusst - sein System nachhaltig schädigen, grundsätzlich hin bis zur Nicht-Benutzbarkeit. Von daher wie immer vorab alle wichtigen Daten sichern und ggf. auch eine Sicherung der Registry machen.

Fühlt man sich bereit, kann es losgehen:

Als erstes muss man den Adobe Reader komplett deinstallieren. Dann startet  man den Registy-Editor, der bei allen Windows-Version an Bord ist. Dies geht über "Start -> Ausführen" und die Eingabe von "regedit". Jetzt navigiert man im Baum auf der linken Seite zum Schlüssel "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe". Dort ist hinterlegt, womit .exe Dateien verknüpft sind - nämlich üblicherweise mit nichts. Von daher sind die bei Unterschlüssel "OpenWithList" und "OpenWithProgids" bis auf die Default-Schlüssel leer. Auf einem System mit dem o.g. Fehler findet man hier Einträge, welche auf den Adobe Reader verweisen. Dies Schlüssel muss man nun alle Löschen. Nach einem Neustart des System ist wieder alles "sauber" und man kann eine neue Installation des Adobe Readers wagen.

Sonntag, 13. Mai 2012

Das harte Leben eines Fussgängers in China

Wenn man in einer chinesischen Stadt zu Fuß geht, hat man keine Rechte im Straßenverkehr. Das ist Fakt.

Wer denkt, die Autos würden an einem Zebrastreifen anhalten, wenn man diesen überquert, der liegt so was von falsch. Wer nicht sehr sorgfältig schaut, wird spätestens bei der 2. Straßenüberquerung gnadenlos um gefahren. Kommt mir jedenfalls so vor. ;-)

Auch grüne Fussgängerampeln sind kein Garant, dass man gefahrlos die Straße überqueren kann. Zum einem, weil Rechtsabbieger auch bei rot abbiegen dürfen, zum anderen, weil für viele Autofahrer die Beachtung der Lichtsignalanlagen optional zu sein scheint.

Aber: ich habe eine Taktik entwickelt, die eine sicher Überquerung von Straßen, auch großen Straßen in großen Städten wie Beijing, relativ sicher ermöglicht.

Diese sieht wie folgt aus:

  • Halte nach Einheimischen Ausschau, die auch die Straße überqueren wollen.
  • Wenn diese los gehen, gehe auch los.
  • Wichtig: Gehe bis zur Straßenmitte rechts vom Einheimischen und wechsle ab der Straßenmitte nach links. Grund: China hat wie wir Rechts-Verkehr, d.h. zuerst kommen die Autos von links, dann von rechts. Somit hat man immer jemanden zwischen sich und dem nahenden Auto laufen. Klingt hart, aber manchmal muss man auch nur an sich denken. ;-)
  • Sollte der Einheimische auf einmal anfangen, los zu laufen, laufe auch. Nicht lange denken, machen. Gleiches gilt, wenn für das Stehen bleiben.

Jedenfalls bin ich damit in China gut gefahren äh.. gelaufen. :-)

Donnerstag, 3. Mai 2012

Taxifahrt und Laufen in Shanghai

Wer reist, der erlebt immer was. So ich auch heute bei einer Taxifahrt in Schanghai, von der Endstation der Maglev (=Transrapid) zum Hotel.

Wie immer habe ich ein Taxi genommen. Für alle, die noch nie in China waren: Taxifahren ist hier ok. Fast alle Taxis sind in einem guten Zustand, als keine klapprigen alten Karren (was z.B. in Indien schon mal der Fall sein kann). Na ja, jedenfalls steige ich in ein handelsübliches Taxi ein, mache dem Fahrer klar, wo ich hin will und er fährt los.

Die Fahrt war soweit auch ok, nur dass der Fahrer nach ein paar Kilometern Fahrt drei oder vier Mal den Motor abgewürgt hat (hörte und fühlte sich zumindest so an). Bis dann beim vierten Mal das Auto partout nicht mehr anspringen wollte. Der Taxifahrer hatte dann zwar wie wild am Schaltknüppel rumgerudert und immer wieder probiert zu starten - das passierte aber gar nichts.

Glücklicherweise war die Stelle, wo wir liegen geblieben waren, aber nur ca. 100 m vom Hotel entfernt. Also bin ich den Rest gelaufen. Immerhin war es dem Fahrer sichtlich peinlich, dass das Auto schlapp gemacht hat. Aber so ist das nun mal. Besser so was passiert Mitten in der Stadt als irgendwo auf dem Land...

Montag, 23. April 2012

Rhytmbox in Precise und die Enttäuschung

Ich fange mal damit an, mich selbst zu zitieren:

> Als Mediaplayer ist Rhythmbox wieder zurück, was ich persönlich gut finden, weil Rhythmbox mir besser gefällt als Banshee. 
(Quelle)

Nun, ich muss das korrigieren: Ich bin von Rhythmbox in Precise enttäuscht und habe mir dann doch Banshee wieder nachinstalliert.

Gut, als Player an sich funtkioniert Rythmbox natürlich einwandfrei - aber das ist ja auch keine Kunst. Es gibt drei Sachen, die mich wirklich stören, wovon die dritte aber nicht so schlimm ist:

1) iPod läßt sich nicht mit Musik beladen: Mein iPod Nano 3rd Generation (also schon ein paar Jahre alt) läßt sich nicht mit Musik beladen. Das hat bisher, also bis Oneiric, ohne Probleme per Drag'n'Drop funktioniert. Unter Precise nicht. Lustigerweise funktioniert das ganze auf dem gleichen Rechner im gleichen Ubuntu (also mit den gleichen Bibliotheken) aus Banshee heraus nach wie vor ohne Probleme.

2) CDs rippen: Gestern habe ich eine gekaufte CD gerippt, ins MP3-Format. Mal abgesehen davon, dass es lange gedauert hat, ware die Kopie falsch. Falsch im Sinne von, dass die MP3s viel zu lang waren! D.h. das z.B. ein 6 Minuten Lied auf der CD als MP3 23 Minuten oder so hatte, halt mit Leerraum am Ende. Sehr seltsame Sache... Aber wieder: gleicher Rechner, gleiches System mit Banshee - funktioniert ohne Probleme.
Edit 24.4.2012: Von einem Leser habe ich den Hinweis erhalten, dass das Problem mit der falschen Liedlänge daran liegen könnte, dass Rhytmbox mit variabler Bitrate (VBR) rippt und dann bei Analysieren der MP3-Datei die Länge falsch berechnet. Könnte sein, nur leider ist unter Precise auch die Schaltfläche für die Einstellungen des MP3-Rippers deaktiviert, so dass hier keinerlei Änderungen möglich sind. Abgesehen davon funktioniert VBR unter Precise plus Banshee einwandfrei und auch ältere MP3s, welche auf anderen System erstellt wurden, auch einwandfrei.

3) Der dritte Punkt ist das nach wie vor fehlende Amazon Plugin für Rhythmbox. Banshee hat's nach wie vor an Bord. Aber, wie gesagt, Punkt 1 und 2 sind schwerwiegender.

Ich will damit nicht sagen, dass Banshee der bessere Player ist. Aber: so wie Rhythmbox in Precise funktioniert ist es für mich nicht wirklich akzeptabel und brauchbar. Vielleicht wird das ganze in den kommenden Wochen per Update noch nachgebessert - was ich persönlich aber (leider) bezweifle.

Dienstag, 13. März 2012

Erster Kontakt: Ubuntu 12.04 und ich

Am Wochenende habe ich auf eine freie Partition auf meinem Lenovo T410 Laptop Ubuntu 12.04 LTS Precise Beta 1 installiert. Normalerweise schaue ich auf neue Ubuntu-Releases erst ab dem Beta 2 (früher Release Candidate). Da aber diverse Blogeinträge dem Beta 1 (und auch schon dem Alpha 2) eine brauchbare Nutzbarkeit und Stabilität bestätigt haben, habe ich es auch mal installiert. Im folgenden nun mein erster Eindruck nach ca. 1h Nutzung.

Und der erste Eindruck ist: unspektakulär. Im positiven Sinne. Wer mit Ubuntu 11.10 Oneiric klar kommt, der sollte auch mit Precise klar kommen. Jedenfalls habe ich (noch?) keine gravierenden Änderungen gefunden. Ein neuer Punkt ist, dass man unter "Systemeinstellungen -> Privacy" einstellen kann, welche Aktivitäten Zeitgeist verfolgen soll - oder eben nicht. Zu HUD kann ich noch nichts sagen, weil habe ich noch nicht mit rumgespielt.

Firefox ist in der aktuellsten Version 11.0 an Bord. Als Mediaplayer ist Rhythmbox wieder zurück, was ich persönlich gut finden, weil Rhythmbox mir besser gefällt als Banshee. Angeblich soll auch noch die Amazon-Integration in den Mediaplayer kommen, im aktuellen Beta 1 konnte ich aber bis jetzt kein passendes Plugin finden... Gut, kommt vielleicht (hoffentlich) noch.

Gimp ist im Beta 1 auch wieder drin. Da das Beta 1 auch nicht mehr auf eine CD passt, sondern eine DVD benötigt (Größe des Images ca. 1,5 GB) musste Canonical wohl nicht am Platz sparen... ;-)

Auf dem besagten Lenovo T410 mit Intel Chipsatz und Intel GraKa funktioniert der Ruhezustand out-of-the-box, was aber auch schon bei älteren Ubuntu-Versionen der Fall war. Was nur halb funktioniert ist das koppeln eines Nokia C06 via Bluetooth. Das Koppeln an sich klappt zwar und man kann Daten von Rechner ans Handy senden, aber nicht umgekehrt bzw. der Laptop kann nicht aufs Handy zugreifen. Hier sei aber gesagt, dass (leider) Lucid die letzte Ubuntu-Version war, wo dies bei mir einwandfrei geklappt hat.

Was noch geändert ist, ist, dass beim Öffnen des Dash keinerlei Anwendungen mehr angezeigt werden. Es wird also nicht mehr, wie noch unter Oneiric, die Menüstruktur der Gnome-Menüs nachgestellt. Ob das jetzt wirklich schlau ist weiß ich noch nicht. Gut, für Anwender mit Erfahrung kein Problem, die Wissen, was auf dem System ist. Für komplette Neueinsteiger, die keine Ahnung von Ubuntu und den installierten Programmen haben, mag das aber verwirrend sein. Tipp: Wenn man nur "a" als Suchbegriff eingibt erscheinen alle Anwendungen.

Erstes Fazit: Ubuntu 12.04 Precise ist eine solide Weiterentwicklung der Linux-Distribution, ohne offensichtliche Highlights und auch ohne offensichtliche Schwächen. Das Beta 1 läuft gut und kann (in meinen Augen) zumindest privat oder als Zweitsystem ohne Probleme jetzt schon genutzt werden.


Montag, 12. März 2012

Windows, Trojaner, Linux und was man wirklich braucht

Es ist passiert.

Ich nutze Windows seit Win95, also seit ca. 17 Jahren. In den letzten Jahren privat zwar kaum noch, aber weder beruflich noch privat hatte ich je ernste Probleme damit.

Seit vorgestern ist das anders, weil sich beim Surfen via Firefox 10.x unter WinXP ein Trojaner auf mein System geschlichen hat. Der AVG Virenscanner erkennt diesen als "generic27.pn". Nur kann der AVG Scanner den Schädling nicht entfernen, weil der wohl tief im System sitzt und auch noch ein Rootkit mitbringt, was im Bootrecord der Win-Installation sitzt (im MBR der Platte sitzt Grub 2).

Ein bisschen Recherche im Internet hat ergeben, dass der Schädling wohl a) relativ neu ist und b) gerne System angreift, die eine ältere Javaversion haben (Hinweis: Angabe ohne Gewähr - das stand in einem Forum drin...). Nun ist meine Java-Version unter Win nicht wirklich alt im Sinne von "Jahre", aber es kann durchaus sein, dass diese seit sechs Monaten oder mehr nicht mehr aktualisiert wurde.

Was mich dann wieder an einen der Hauptgründe erinnert hat, warum ich Linux nutze: die (automatische) Paketverwaltung. Das alle Pakete systemweit (automatisch) aktualisiert werden ist in meinen Augen ein immenser Vorteil. Gerade für Gelegenheitsnutzer und Einsteiger. Bzw. generell für jeden, der nicht laufend manuelle Update-Origien aller Programme anstoßen möchte. Schnell ist da mal was vergessen, siehe oben.

Zurück zum Trojaner und Windows: Das Entfernen des Schädlings ich wohl nicht trivial. Sonst würde der Virenscanner das auch alleine schaffen. Die Meinung gehen hier je nach Forum ein wenig auseinander. Die eine Anleitung ist ein größerer Eingriff inkl. neu schreiben des Bootrecords von Windows, anderen "Anleitungen" sagen direkt: Neuinstallation.

Ehrlich gesagt: eigentlich habe ich auf beides keine Lust...Als Linux (Ubuntu) Nutzer bin ich es gewöhnt, dass Dinge einfach funktionieren ;-) Von daher habe ich mir dann mal die Frage gestellt, ob ich Windows überhaupt noch brauche...

Wie weiter oben bereits erwähnt, nutze ich Win so wie so wenig. Die Gründe sind:
  • Steuererklärung mit Elster
  • Beladen des Garmin GPS mit Geocaching Daten
  • Datensicherung Nokia Handy
  • Aktualisierung TomTom Navi
  • Lernsoftware von / für die Grundschule für das größere Kind
Gehen wir die Punkte mal durch:

Ersteres geht soweit ich weiß über Wine, jedenfalls gibt es im Wiki von ubuntuusers.de einen Artikel dazu.

Zweiteres ginge auch unter Linux über einen Zwischenschritt. Ist mit dem Garmin Communicator Plugin unter Win halt nur etwas komfortabler. Kann man aber auf jeden Fall ohne weiteres mit Leben.

Die Datensicherung geht zwar prinzipiell auch über eine Synchronisation mit einem MS Exchange-Server. Das ist aber nicht das gleich. Wobei ich vermute, dass es auch unter Linux eine Lösung gibt. Muss ich mal ein wenig suchen.

Die Aktualisierung des TomToms geht soweit ich weiß nur via Windows, da die aktuelle Lösung relativ tief ins System eingebunden ist.

Letzter Punkt Lernsoftware: Tja... könnte unter Wine laufen, müsste man aber von Fall zu Fall testen. Und wäre halt doof, wenn was nicht läuft... Mit Lernsoftware ist hier übrigens gemeint, was die Kinder von der Schule bekommen bzw. den Schulbüchern beiliegt. Nicht freie Lernsoftware wie z.B. die Edubuntu Programme.

Was ich mache, weiß ich aktuell noch nicht... Vielleicht doch ein Windows, was nur für die paar Sachen genutzt wird, die unter Linux nicht ohne weiteres gehen (Lernsoftware, TomTom)?

Was aber auf jeden Fall klar ist: Nutze Linux (in meinem Fall Ubuntu), wo immer es geht. Dann braucht man sich auch keine Gedanken über so blöde Trojaner und die Reparatur des Systems machen.

Dienstag, 6. März 2012

Autofahren abgeschaut in anderen Ländern - Indien

Wenn man im Ausland unterwegs ist sieht man viele Dinge, die anders sind als bei uns (in Deutschland). Mal besser, mal schlechter. Aber man kann sich natürlich auch Anregungen holen, um Sachen dann zu Hause zu optimieren.

Diverse Fahrten mit Autos in Indien haben zwei Punkte deutlich aufgezeigt, die wir in Deutschland auch in die Straßenverkehrsordnung aufnehmen sollten.

1) Nutze extensive die Hupe und Lichthupe! Innerorts tendenziell mehr als außerorts.
Gut, ist nach aktueller Rechtslage in Deutschland in vielen Fällen Nötigung. Aber es macht doch vieles so viel besser! Der vor einem fahrende weiß, dass man von hinten kommt und schneller ist. Und vorbei will (rechts oder links, geht zumindest in Indien beides). Besonders die Kombination aus Lichthupe und Hupe ist ein opto-akustisches Warnsignal, was kaum zu ignorieren ist.
Ansonsten sollte man so wie so die Hupe viel öfter benutzen, z.B. wenn man abbiegen will und dem Fahrzeug auf der Vorfahrsstraße so mitteilt, dass man jetzt rein zieht. Vorfahrt hin oder her.

2) Nutze die volle Breite der Straße!
Weiße Striche auf der Straße sind ja ganz nett, der sonst eintönig grau-schwarze Asphalt wird dadurch aufgehübscht. Aber dazwischen Fahren ist eine unnötige Beschränkungen. Wenn vier Autos auf zwei Spuren nebeneinander passen, dann sollte man das auch machen. Die Breite der Straße wird so maximal ausgenutzt. Oder, falls sich doch mal ein Stau ergeben sollte, dann wird dieser automatisch kürzer, weil ja mehr Autos nebeneinander stehen können.
Übrigens: Um die maximale Autodichte zu erhalten ist es weiterhin sehr sinnvoll, die Außenspiegel einzuklappen oder direkt ganz zu entfernen. So kann man noch näher an das Auto neben einem heran.

So weit, so gut. Arbeiten wir an der Umsetzung.

Sonntag, 22. Januar 2012

Die Untiefen des QIntValidators...

... oder auch: Wenn der Computer weiter denkt als der Mensch.

Für den Beitrag hier im Blog To GUI or not to GUI hat ich für das Qt4 / PySide eigentlich eine andere, kürzere Variante im Kopf.  Dabei sollte der try... except... Block wegfallen, weil für das Eingabefeld ein QIntValidator zum Einsatz kommen sollte. Dieser prüft, wie der Name schon vermuten lässt, ob eine Eingabe eine ganze Zahl ist bzw. Unterdrückt direkt die Eingabe von Buchstaben, Zeichen etc.

So weit, so gut. Hat aber nicht so funktioniert, wie ich dachte. Das zeigt auch das folgende, kleine Beispielprogramm:

#!/usr/bin/env python
# ~*~ coding: utf-8 ~*~

import sys

from PySide import QtGui

class MyClass(QtGui.QDialog):
    def __init__(self,parent=None):
        super(MyClass, self).__init__(parent)
        self.setWindowTitle('QIntValidator Test')
        layout = QtGui.QVBoxLayout()
        self.eingabe = QtGui.QLineEdit()
        self.eingabe_valid = QtGui.QIntValidator(0,1000,self)
        self.eingabe.setValidator(self.eingabe_valid)
        layout.addWidget(self.eingabe)
        self.button = QtGui.QPushButton(u'Echo')
        layout.addWidget(self.button)
        self.label = QtGui.QLabel(u'Echo...')
        layout.addWidget(self.label)
        self.setLayout(layout)
        self.button.clicked.connect(self.echo)

    def echo(self):
        wert = int(self.eingabe.text())
        return self.label.setText(unicode(wert))

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    my_class = MyClass()
    my_class.show()
    sys.exit(app.exec_())

Dieses gibt einfach die Eingabe (welches eine ganze Zahl sein muss) wieder. Wird nun aber z.B. "1.1" oder "1,1" eingegeben, so wird - zumindest auf meinem System (Ubuntu 11.10 mit deutscher Spracheinstellung) - "11" zurück geliefert. Punkt bzw. Komma werden also entfernt.

Leicht verwirrt habe ich dann im deutschen Python-Forum nach Rat gefragt und der Nutzer "lunar" wusste auch, warum dieses Verhalten so ist. Die Langversion kann man im verlinkten Thread nachlesen, die Kurzfassung ist: Aufgrund der Spracheinstellung werden Punkt und Komma als gültige 1000er-Trennzeichen akzeptiert. Tauchen diese aber an der falschen Stelle auf (wie z.B. bei 1.1), dann wird es einfach ignoriert bzw. entfernt. Ergo: It's not a bug, it's a feature! Da muss man aber erst Mal drauf kommen... (zu Mal es in der PySide Doku nur sehr kurz erwähnt ist).

Wer einen "echten" Validator braucht, welcher wirklich nur die Ziffern von 0 bis 9 als Eingabe akzeptiert, der findet im oben genannten Thread direkt auch noch die passende Lösung, ebenfalls vom Nutzer lunar.

Mittwoch, 18. Januar 2012

To GUI or not to GUI...

Schaut man in den Programmierforen nach, so kommt von Einsteiger öfters die Frage: "Ich möchte mein erstes Programm schreiben, das auch eine GUI haben soll.". Eine oft gehörte Antwort ist dann: "Programmier' erst Mal ohne GUI".

Das mag befremdlichen klingen, da seit vielen Jahren eine grafische Benutzeroberfläche absoluter Standard ist. Warum soll man also nun für das (erste) eigene Programm darauf verzichten? Diese Frage wird im folgenden ein wenig beleuchtet.

Dazu gibt es folgende kleine Aufgabe: Es soll ein Programm geschrieben werden, welches eine ganze Zahl als Eingabe nimmt und das Quadrat dieser Zahl als Ausgabe zurück liefert. Um das Programm einfach zu halten und den Fokus auf "To GUI or not to GUI" zu legen, soll das Programm lediglich prüfen, ob die Eingabe eine ganze Zahl ist. Wenn nicht soll eine Fehlermeldung ausgegeben werden. Weiterhin enthalten die Quelltexte keinerlei Kommentare.

Als Programmiersprache kommt Python zum Einsatz, wobei sich die Beispiele  sicherlich auch recht einfach auf andere Sprachen übertragen lassen.

Zurück zu "Programmier' erst Mal ohne GUI": Selbst Linux-Nutzer, welchen die Kommandozeile tendenziell geläufiger ist als z.B. Windows-Nutzer, erscheint es vielleicht doch ein wenig antiquiert "nur Text" zu Arbeiten. Der Grund für den Rat hierzu ist aber recht simpel: Selbst eine minimale GUI (wie im folgenden zu sehen) verlangt einiges mehr an Codezeilen. Plus, und das ist der wichtigere Punkt, die Einarbeitung in eine entsprechende Bibliothek mit entsprechend umfangreicher Dokumentation kann zeitaufwendig sein. Das heißt, dass der geneigte Programmieranfänger nicht nur die Grundlagen einer für ihn neuen Programmiersprache lernen soll, sondern auch direkt die Nutzung der GUI-Bibliothek - was die Sache definitiv nicht einfacher macht. Außerdem wäre es ja auch Schade, wenn er frustriert aufgibt, weil er (als Anfänger) nicht mit der GUI-Programmierung zurecht kommt.

Bevor wir zu den verschiedenen Versionen des Programms kommen noch eine Anmerkung vorab: Vor den Listings ist immer die Anzahl der Codezeilen angegeben. Die beinhalten nicht den Shebang und die Coding-Info (welche bei allen Listings so wie so gleich ist), weiterhin werden Leerzeilen nicht mit gezählt. Codezeilen, welche Zeilenumbrüche zur Verbesserung der Lesbarkeit enthalten, werden ebenfalls als eine Zeile gezählt.

Alle Programm sind unter Ubuntu 11.10 Oneiric getestet, die verwendete Python-Version bzw. GUI-Bibliotheken und Python-Anbindungen stammen alle aus den offiziellen Paketquellen.

Der erste Kandidat ist ein reines Kommandozeilen-Programm. Dieses erwartet, dass die zu quadrierende Zahl als Argument beim Programmaufruf mit übergeben wird. Heißt das Programm z.B. "quadrat.py", so lautet der Aufruf:

python quadrat.py 12

Hier das Programm für die Kommandozeile, 12 Zeilen:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys

if len(sys.argv) < 2:
    print 'Es wurde kein Wert vorgegeben!'
    sys.exit()

eingabe = sys.argv[1]
try:
    zahl = int(eingabe)
except ValueError:
    print 'Der Wert ist keine ganze Zahl!'
    sys.exit()
else:
    print zahl * zahl


Update 21.1.2012:
Das obige Beispiel läuft zu ziemlich unter allen Python-Version, selbst unter sehr alten. Wer Python 2.7  bzw. 3.2 und neuer nutzt, der kann den Code noch kürzer gestalten, und zwar unter Verwendung des argparse-Moduls:

Kommandozeile mit argparse, 5 Zeilen:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import argparse

parser = argparse.ArgumentParser('Programm zum Quadrieren von Integerzahlen.')
parser.add_argument('value', type=int)
args = parser.parse_args()
print args.value * args.value


Danke an Hyperion für den Hinweis hierzu in deutschen Python-Forum!


Nun ist der Vergleich eines reinen Kommandozeilen-Programms vielleicht nicht ganz fair, weil dieses für jede Rechnung erneut aufgerufen werden muss. Die Programme mit grafischer Oberfläche müssen nur ein Mal gestartet werden, dann können beliebig viele Rechnungen durchgeführt werden.

Doch auch auf der Kommandozeile gibt es dafür ein pythonische Lösung, das cmd-Modul. Eine Einführung in dieses Modul ist im Blogeintrag cmd - Python-Modul für text-basierte Programme hier bei mir im Blog zu finden.

Die Umsetzung sieht dann so aus:

cmd-Modul, 14 Zeilen:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import cmd

class SimpleCmd(cmd.Cmd):
      
    def do_quadrat(self, line):
        try:
            zahl = int(line)
        except ValueError:
            print 'Der eingegebene Wert ist keine ganze Zahl!'
        else:
            print zahl*zahl

    def do_EOF(self, line):
            print 'Programm beenden...'
            return True

simplecmd=SimpleCmd()
simplecmd.cmdloop()

Kommen wir zu den GUI-Bibliotheken. Betrachtet werden hier die beiden wohl populärsten Frameworks, nämlich Qt4 und GTK+. Erster wird dabei über PySide genutzt, letzter über das PyGObject.
Pyside + Qt4, 27 Zeilen:

#!/usr/bin/env python
# ~*~ coding: utf-8 ~*~

import sys
from PySide import QtGui

class SimpleQt(QtGui.QDialog):
    def __init__(self,parent=None):
        super(SimpelQt, self).__init__(parent)
        self.setWindowTitle('Qt4')
        layout = QtGui.QVBoxLayout()
        self.eingabe = QtGui.QLineEdit()
        layout.addWidget(self.eingabe)
        self.button = QtGui.QPushButton(u'Quadrieren')
        layout.addWidget(self.button)
        self.label = QtGui.QLabel(u'Ergebnis...')
        layout.addWidget(self.label)
        self.setLayout(layout)
        self.button.clicked.connect(self.rechnen)

    def rechnen(self):
        wert = self.eingabe.text()
        try:
            zahl = int(wert)
        except ValueError:
            msgBox = QtGui.QMessageBox()
            msgBox.setText(u'Der eingegebene Wert ist keine ganze Zahl')
            msgBox.exec_()
        else:
            self.label.setText(unicode(zahl*zahl))

app=QtGui.QApplication(sys.argv)
simple_qt=SimpleQt()
simple_qt.show()
sys.exit(app.exec_())

Und hier noch die Version mit grafischer Oberfläche, welche auf GTK+ setzt:

PyGObject + GTK+, 29 Zeilen:

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
from gi.repository import Gtk
 
class SimpelGtk(object): 
    def Gtk.Window.__init__(self, title='Simpel Gtk+')
        self.window.set_default_size(200, 100)
        vbox = Gtk.Box(False, 20)
        vbox.orientation = Gtk.Orientation.VERTICAL
        self.window.add(vbox)
        self.eingabe = Gtk.Entry()
        vbox.pack_start(self.eingabe,True,True,0)
        button = Gtk.Button("Quadrieren")
        button.connect("clicked", self.rechnen)
        vbox.pack_start(self.button,True,True,0)    
        self.label = Gtk.Label("Ergebnis...")
        vbox.pack_start(self.label,True,True,0)
        
    def rechnen(self,data=None):
        try:
            wert = int(self.eingabe.get_text())
        except ValueError:
            text = 'Die Eingabe ist keine ganze Zahl!'
            dialog = Gtk.MessageDialog(self, 0, Gtk.MessageType.ERROR,
            Gtk.ButtonsType.CANCEL, 'Fehler bei der Eingabe')
            dialog.format_secondary_text(
                'Der eingegebene Wert ist keine ganze Zahl!')
            dialog.run()
        else:
            self.label.set_text(str(wert*wert))

    def main(self):
        win = Gtk.Window()
        win.connect("delete-event", Gtk.main_quit)
        win.show_all()
        Gtk.main()
 
if __name__ == "__main__":
    e = SimpelGtk()
    e.main()
    
#http://python-Gtk-3-tutorial.readthedocs.org/en/latest/introduction.html

Wie zu sehen ist, sind die GUI-basierten Varianten deutlich länger, nämlich rund 2,5x länger als die Kommandozeile-Version und circa 2x so lange wie die Version, welche das cmd-Modul nutzt. Das mehr an Codezeilen ist dabei natürlich durch das Hinzufügen der GUI-Elemente bedingt. Weiterhin ist der Quelltext für Anfänger (wahrscheinlich) deutlich schwieriger nach zu vollziehen.

Nur damit keine Missverständnisse entstehen: Dies ist kein Plädoyer gegen Programme mit GUI. Überhaupt nicht. Es soll lediglich gezeigt werden, wodurch der oft gehört und gut gemeinte Rat "Programmier' erst Mal ohne GUI" motiviert ist.

Abgesehen davon: beherrscht man die Grundlagen einer Progammiersprache ist es oft deutlich einfacher, die APIs weiterer Bibliotheken wie z.B. den zur GUI-Erstellung, nachzuvollziehen.

Dienstag, 17. Januar 2012

Nomeansno "Mr. Wright and Mr. Wrong: One down and two to go" - Rezension

Zugegeben: ich dachte, ich kenne und habe alle Nomeansno Alben. Dieses hier, datierend auf 1994, ist mir dabei wohl entgangen... Jedenfalls habe ich es jetzt erst (online zusammen mit der Tour EP 2) erstanden).

Laut der englischen Wikipedia enthält das Album ein zu Zusammenstellung aus alten Songs (1979/1980), Liedern von den "Why do you call me Mr. Happy" Aufnahmen und ein paar neue Tracks (na ja, neu bezogen auf 1994...). Die meisten Tracks sind wohl von Rob und John Wright als Duo eingespielt, da Nomeansno 1994 keinen Gitarristen hat (Tom Holliston kam erst nach diesem Album offiziell zur Gruppe).

Der Release kommt so auf 16 Tracks und eine Spielzeit von ziemlich genau 60 min. Und, was soll ich sagen: 60 gute Minuten! Man hört zwar ein wenig, welche Songs älter sind, aber nichts desto trotz wird die Platte durchweg homogen. Was auch sehr schön ist: Die Platte zeigt sehr gut das gesamte Repertoire von Nomeansno, von schneller, punkrockiger Stücken über die etwas vetrackten "Jazzpunk" Sachen bis zu den langsamerer, melancholischen Songs.

Auch wenn man dein Eindruck haben könnte, dass hier die Reste zusammengekrazt wurden: Nein, wurde nicht. Jedenfalls ist der Release qualitativ ohne weiteres auf Augenhöhe mit den den anderen CDs / Platten von Nomeansno.

Fazit: Muss man haben. Keine Frage. Und Nomeansno ist bekanntlich so gut, dass das eigentlich jeder haben sollte. ;-)

Sonntag, 15. Januar 2012

Front 242 Live in Heerlen, NL, 14.1.2012

Falls sich jetzt jemand wundert, dass ich bei einem Front 242 Konzert war: Nein, ich höre keine EBM oder Elektro. Die einzigen Ausnahmen: manche Sachen KMFDM und eben Front 242. Wobei ich von letzteren nur zwei CDs besitzte, nämlich die beiden Live-CDs.

Vor 14 Jahren ich Front schon mal live in Bonn gesehen, in Bonn bei der :Re:Boot: Tour. Das war damals ziemlich genial. Jetzt war es dann wieder mal so weit: 14.1.2012, in Heerlen (Niederland).

Zur Location: Konzertort war das Theater in Heerlen. Ein richtiges Theater, aber moderner Bauart mit mehreren Räumen. Der "Limburger Zaal" (so der Name des Raums) fasst 600-800 Leute und ist breiter als tief. Sprich: jeder war nah an der Bühne. Auch gut.

Noch ein Wort zum Publikum: Jünger als 30 Jahre war glaube ich keiner, der Schnitt lag so bei ca. 40. Halt alles Front-Fans der ersten Stunden, die auch heute noch zu Front stehen.

Die Vorband war "Plastic Noise Experience". Gefälliger, intelligent gemachter Elektropop / EBM mit stark verzerrtem Gesang. Nicht schlecht, aber insgesamt ein bisschen statisch und ein bisschen fehlender "Bums".

Um ca. 21.30 Uhr war dann die Zeit reif für Front 242. Schon nach dem Intro war klar: Das wird gut! Super Sound, klar, prägnant, nicht zu laut. Und nach dem dritten Song ("Moldavia") war der ganze Saal in Bewegung. Und eins ist auch klar: Front 242 wissen, wie man ein gutes Konzert spielt. Fulminanter Start, zur Mitte hin etwas ruhiger und dann zum Ende noch Mal Vollgas. Die Songauswahl war ein geschickte Mischung aus den "Hits" (wie Headhunter, Im Rhythmus bleiben, Body to Body, Relgion) und anderen Stücken.

Was auch schön ist bei Front: Live werden die Stücke immer "aktualisiert". Das heißt, dass nicht einfach das Original 1:1 gespielt, sondern leicht variiert wird. Hier eine kleine Änderungen des Beats, dort ein modernerer Synthi-Sound. So klinge die Stücke immer frisch, interessant und "up-to-date", ohne jedoch den Bezug zum Original zu verlieren.

Das ganze wurde untermalt von einer sehr gut abgestimmten Licht- und Videoshow. Nicht minimalistisch, nicht bombastisch, sondern auf den Punkt präzise und perfekt zum jeweiligen Song passend.

Fazit: ein sehr gutes Konzert! Wer auf elektronische Musik steht, welche auch nur grob in Richtung EBM geht, der sollte sich Front 242 live anschauen. Denn: Die Show rockt richtig! 

Sonntag, 8. Januar 2012

kurze Zwischeninfo

Ein untrügliches Zeichen, dass ich mich an Unity gewöhnt habe: habe gerade unter Ubuntu 10.04 Lucid den Mauszeiger an den linken Bildschirmrand gefahren und gewartet, dass das Menü ausklappt. Oh Mann... Der Mensch ist halt ein Gewohnheitstier. ;-)

Für alle die sich jetzt wundern, wieso Lucid: Ich nutze Lucid zum Programmieren, weil die meisten Programme später auch auf einem Server unter Lucid laufen. Der aktuelle Ubuntu-Release (im Moment also Oneiric) wird für die "tägliche Arbeit" genutzt.

BTW: Das mit dem Mauszeiger und kein Menü kommt ist eine wahre Begebenheit.

Donnerstag, 5. Januar 2012

Nomeansno "Tour EP 2" - Rezension

Die Tour EP 2 ist zwar schon seit Sommer 2010 raus - aber ich habe sie erst in den vergangen Tage online in den USA gekauft. Vielleicht habe ich zu lange gewartet, dass Amazon das Ding endlich anbietet. Ist aber nicht der Fall. Wobei die aber komischerweise die Tour EP 1 haben. Egal.

Genau so wie die 1. EP enthält die Tour EP 2 ebenfalls vier Tracks. Während die Nr. 1 aber ziemlich ruhig ist, ist die Nr. 2 etwas rockiger. Rockig a la Nomeansno halt. Und recht "fröhlich".

Spieltechnisch und songtechnisch ist der Release auf gewohnt hohem Nomeansno Niveau. Ausgefuchstes Drumming, rollenden Basslinien, perfekt passende Gitarrenriffs und der bekannt Gesangsstil von Rob Wright. Alles halt, was Nomeansno ausmacht.

Die EP enthält insgesamt vier Tracks, mit einer Gesamtspielzeit von rund 25 min. Der 1. Track ist min 4 min recht kurz, die anderen drei liegen zwischen 6 und 8 min. Aber wer Nomeansno kennt weiß: auch wenn die Lieder lang sind wird's nicht langweilig.

Das Fazit ist klar: wer Nomeansno mag, der muss diesen Release auch haben. Wer Nomeansno nicht kennt hat so wie so was verpasst. ;-)

Geschichten von früher - und Unity

Mal eine kleine Geschichte von früher, aus den Anfängen meiner Linux-Zeit:
Das erste Linux, was ich häufiger genutzt habe, war Knoppix, Version 3.3. Das war so im Frühjahr 2004. Für alle, die damals noch nicht mit Linux unterwegs waren: Knoppix war seinerzeit ziemlich populär und auch in den Print-Medien recht präsent. Der Grund war wohl, dass Knoppix mit das erste ausgereifte Live-System war, was quasi jeder Computernutzer gefahrlos testen konnte.

Als Desktop setzte Knoppix damals noch auf KDE 3.x. Was für Windows-Nutzer - wie mich seinerzeit auch - angenehm war, weil die Bedienung recht ähnlich war. "Recht ähnlich" im Sinne von: Links unten gab es ein Icon, auf das man Klicken musste, damit sich das Menü mit den Programmen öffnet. Und die Menüstruktur war auch der von Windows ähnlich. Also zumindest in dieser Hinsicht war keine große Umstellung notwendig.

Beflügelt durch meine positiven Erfahrungen mit Knoppix habe ich mich dann ebenfalls für die Derivaten interessiert, die es seinerzeit auch schon gab. Eins davon war Gnoppix. Was nichts anderes war als ein Standard-Knoppix, nur das Gnome 2.x statt KDE als Desktop zum Einsatz kam. Nach dem 1. Booten und 10 Sekunden Benutzung war ich entsetzt: Was ist das denn für eine komische Menüstruktur?! Anwendungen? Orte? System? Und dann auch noch am oberen Bildschirmrand? Das geht ja gar nicht. Jedenfalls war die 1. Begegnung mit Gnome so erschreckend, dass ich die Gnoppix-CD nie mehr angepackt habe (und, wenn ich mich richtig erinnere, direkt entsorgte).

Aus heutiger Sicht kann ich das gar nicht mehr nachvollziehen. Mein 2. Kontakt mit Gnome im Form von Ubuntu 5.04 im Sommer 2005 verlief dann wesentlich erfolgreicher - und dauerhafter.

Und was hat das ganze mit Unity zu tun? Nun, nichts. Jedenfalls nicht direkt. Außer das manche Dinge (wie z.B. Desktop-Umgebungen, aber nicht nur) auf den ersten Blick vielleicht ganz furchtbar erscheinen, beim zweiten Blick gar nicht mehr so schlimm sind. Und das man vielen Dingen (wie z.B. Desktop-Umgebungen, aber nicht nur) auch mal eine zweite Chance geben sollte.

(Der geneigte Leser mag im vorherigen Abschnitt auch gerne "Unity" durch "Gnome 3" oder "KDE 4" ersetzen...).

Und zum Abschluss noch ein passendes Zitat:

"Humor is tragedy plus time" (Mark Twain)

Rückblickend finde ich meine erste Begegnung mit Gnome nämlich ziemlich lustig.