Fredo's Blog

Humanities, Social Sciences and Free Software

Subscribe to RSS feed

Posts tagged with "Linux"

Zeit für die Kontaktlinse: Von der Idee zum Projekt mit unity-lens-contacts

, , , ...

In Ubuntus (nicht mehr ganz so) neuem Unity-Desktop steht die Suche im Mittelpunkt: Anstatt sich durch verschachtelte Menüs zu wühlen, sollen Inhalte jetzt über eine zentrale Suchmöglichkeit gefunden werden können. Und um verschiedenen Arten von Gefunden-werden-Wollendem abzudecken, bietet Unity die Möglichkeit, spezialisierte Plugins zu schreiben, die sogenannten Lenses. Jeder Unity-Nutzer kennt die Linsen für Anwendungen, Dateien und (neuerdings) Musik, aber die Idee ist, auch neue Funktionen auf diese Weise zu ergänzen.

Das Interface ist zwar neu, die Idee ist es nicht unbedingt: Vor einigen Jahren trat das Deskbar-Applet an, um eine zentrale Anlaufstelle für die Desktop-Suche zu werden, mit Plugins für Tracker (als Dateisuche), Anwendungen (als Programmstarter) und vieles anderes. Auch wenn die Deskbar nicht ohne Probleme war, die Idee leuchtete mir gleich ein. Eine Funktion fehlte mir aber, nämlich die Suche in meinem Adressbuch und die schnelle Anzeige von Kontaktinformationen, ohne dass ich immer gleich Evolution aufrufen muss. Problem erkannt, Problem gebannt, so wurde mein Deskbook-Plugin geboren, das ich bis heute gerne benutze.

Andere sind jetzt auf die einleuchtende Idee gekommen, diese Funktion jetzt in die Unity-Dash einzubauen. So findet sich ein entsprechender Eintrag auf Ubuntu Brainstorm. Auch OMG! Ubuntu! hat schon einmal einen frühen Prototyp vorgestellt. Die Idee ist bis zum Ubuntu Technical Board vorgedrungen und wurde einem Review unterzogen. Zwar wird das Kern-Team in absehbarer Zeit keine solche Lens erstellen, aber Allison Randal gibt ein paar Hinweise, wie ein leidlich erfahrener Python- oder Vala-Programmierer ein solches Unterfangen beginnen könnte.

Mir gefällt die Idee, und anderen offenbar auch. Pablo Saavedra hat (aufbauend auf der Music Lens) schon mal ersten Code geschrieben. Aber um vom ersten Proof-of-Concept zu einer billant geschliffenen Kontakt-Linse zu kommen, ist noch einiges zu tun. Um für Interessierte eine Anlaufstelle zu bieten, habe ich einmal ein Projekt auf Launchpad erstellt und ein Team gegründet.

Ich denke, dass eine solche Lens eine überschaubare Aufgabe ist, und ein guter Einstieg in die Entwicklung für Unity. Alle, die die Idee einer Kontaktsuche in der Dash überzeugen kann, und die Lust haben, sich in ein solches Projekt einzubringen, sind herzlich eingeladen, dem Team beizutreten und auf der Team-Mailingliste über die nächsten Schritte zu diskutieren. Noch ist nicht einmal die Wahl der Programmiersprache (Python oder Vala) endgültig gefallen, ihr habt also die großartige Gelegenheit, das Projekt von Anfang an mitzugestalten.

Es würde mich freuen, den einen oder die andere Interessierte im Team begrüßen zu können.

Auf einen Blick: Informationspolitik auf dem Desktop

, , , ...

Microsoft hat einen ersten Blick auf Windows 8 veröffentlicht. Falls man bisher meinte, Unity oder GNOME 3 würden mit bisherigen Desktop-Gewohnheiten brechen, zeigt die Windows-8-Preview, dass es noch drastischer geht. Der Windows-8-Desktop hat viel mehr mit Windows Phone 7 als mit einem bisherigen Windows-System zu tun. Und das System ist gleichermaßen auf Touch- wie auf Maus- oder Tastaturbedienung ausgelegt.



Besonders interessant finde ich die Idee der Kacheln, die gleichzeitig Programmstarter darstellen und live Informationen aus den Programmen anzeigen. Ganz allein ist Microsoft aber nicht mit der Idee: Opera bringt in der nächsten Version Speeddial-Extensions. Damit dienen die Schnellwahl-Kacheln nicht nur als Bookmarks mit Vorschau auf die Seite, sondern können selbst Informationen komprimiert auf einen Blick zeigen. Beispiele können das Wetter (das irgendwie immer als Beispiel herhalten muss), die neuesten Fotos oder Artikelüberschriften sein.

Die Idee ist nicht ganz neu: Verschiedene Desktops haben verschiedene Ansätze ausprobiert, Informationen schnell zugänglich zu machen. MacOS X hat einen Widget-Layer. Verschiedene Widget-Engines für verschiedene Betriebssysteme (wie etwa Yahoo! Widgets, Screenlets und andere) bringen die Widgets direkt auf den Desktop, und Windows Vista hat die Widgets in eine Sidebar gepackt. Der klassische GNOME-2-Desktop hatte Panel-Applets, die weniger Raum bieten, dafür aber immer sichtbar sind.

GNOME hat sich bislang, abgesehen von den sehr eingeschränkten Panel-Applets, keines dieser Konzepte zu eigen gemacht. Und mich überzeugt das klassische Widget-Konzept auch noch nicht restlos: letztlich sind die Widgets wieder eigenständige Programme, die alle ihr eigenes Look-and-Feel mitbringen. Und der Desktop ist nunmal in der Regel von laufenden Programmen verdeckt. Compiz bietet zwar auch einen Mac-OS-X-artigen Widget-Layer, den man mit Screenlets bestücken kann, aber auch das Konzept ist nicht wirklich in den Desktop integriert.

Unity hat einen anderen Ansatz gewählt, mit denen Programme laufend Informationen anzeigen können: Neben den bekannten, wenn auch variierten Mechanismen von temporären Benachrichtigungen (über libnotify) und Indicator-Icons (via libappindicator) können sich Programme (via libunity) auch in ihren Programm-Starter einklinken und dort aktuelle Informationen anzeigen. Die Möglichkeiten halten sich mit einem Zähler (etwa für ungelesene Nachrichten) und einem Fortschrittsbalken (etwa für laufende Downloads) allerdings eher in Grenzen. (Daneben sind noch Quicklists und ein Urgency-Hint implementiert, die aber nicht im engeren Sinne zur Darstellung von Informationen dienen.) Dafür haben alle Anwendungen eine einheitliche API, mit der sie sich in den Desktop einklinken können.

Ich persönlich finde den Ansatz von Windows 8 und Opera, Starter/Bookmarks als „Fenster“ in die Anwendung/Website zu sehen und dort schon die wichtigsten Informationen anzuzeigen, sehr interessant. Und mir fehlt auch eine gute Lösung dafür unter Ubuntu. Das Wetter ist mir dabei eher unwichtig, aber eine gute Übersicht über die nächsten Termine würde mir schon sehr weiterhelfen. (Die Integration in die Panel-Uhr ist zwar auch hübsch, aber eben gerade nicht sehr sichtbar.) Mir würde auch schon ein Ort einfallen, wo Unity den Anwendungen Raum für solche Informationen bieten könnte: Das Unity-Dash.



Die dort derzeit angelegten Icons sind ohnehin weitgehend redundant (die wichtigsten Anwendungen sowie die Lenses für Anwendungen und Dateien findet man auch im Launcher), und dort ist auch hinreichend Platz.

Das ist natürlich nur eine kleine Idee, und vermutlich hat man beim Ayatana-Projekt schon andere Pläne. Aber ich würde mich freuen, wenn auch der Ubuntu-Desktop eine schöne Lösung finden würde, Anwendungsinformationen auf einen Blick anzuzeigen. Windows 8 und Opera haben auf jeden Fall schon mal etwas vorgelegt.

Goodbye GNOME 2, hello Xfce?

, , , ...

Gerade las ich die Nachricht, dass Ubuntu Studio bald auf Xfce statt Unity oder GNOME3 setzt. Für mich ist das eine interessante, aber auch nicht sehr überraschende Entwicklung. Und es passt für mich auf eine gewisse Weise zu der Meldung, dass Lubuntu nun ein offizielles Ubuntu-Derivat wird. Damit ergibt sich nach meinem Dafürhalten so langsam ein interessantes Bild.

Die Zukunft des GNOME-Desktop liegt bei GNOME 3 Shell und Unity. Es ist mittlerweile klar, dass Ubuntu 11.10 ohne den klassischen GNOME-(2-)Desktop kommen wird. Es gab an der einen oder anderen Stelle Aufregung darüber, aber für mich ist das nur konsequent: GNOME 2 wird nicht ewig gewartet werden, und Upstream setzt man auf GNOME 3 mit der Shell. Für wichtiger halte ich, dass die GNOME Shell in 11.10 wieder aus den Ubuntu-Quellen installierbar sein wird, und danach sieht es derzeit aus. Dass Ubuntu auf eigene Faust einen veralteten Desktop weiterentwickelt, scheint mir nicht gerade naheliegend.

Was machen aber die Anwender, die sich mit den neuen Konzepten von GNOME 3 Shell und Unity nicht anfreunden können? Nicht einmal „dann suche ich mir eben eine andere Distribution“ ist in dieser Situation eine dauerhafte Lösung, denn keine Distribution wird, soweit ich sehe, GNOME 2 auf eigene Faust weiter pflegen. Vielleicht ist liegt die Zukunft des klassischen GNOME-Desktop-Feelings aber ja in Xfce.

Mit LXDE/Lubuntu hat so langsam ein neuer Desktop den Platz als leichtgewichtiges System für schwache/alte Rechner eingenommen, auf dem lange Xfce/Xubuntu zu Hause war. Xfce ist immer komfortabler, aber damit auf gewisse Weise auch fetter geworden. Ich hatte schon länger den Eindruck, dass Xfce das Unterscheidungsmerkmal zu GNOME verloren geht. Was sich im Vergleich zu LXDE als Nachteil darstellte, könnte aber auch ein Vorteil sein: Nun, wo sich der GNOME-Desktop mit Shell und Unity nach oben absetzt, ist auf dem Platz von GNOME 2 auf einmal eine Lücke entstanden, die Xfce hervorragend füllen könnte. Die Entscheidung von Ubuntu Studio scheint genau das zu bestätigen.

Wer will Rollen spielen?

, , , ...

Früher habe ich gerne ab und zu mal Pen&Paper-Rollenspiele gespielt, und auch PC-Rollenspiele wie Neverwinter Nights oder Drakensang machen mir durchaus gelegentlich Spaß. Während Neverwinter Nights wenigstens noch als Linux-Version herausgegeben wurde (der Nachfolger aber leider schon nicht mehr), habe ich ansonsten leider kaum halbwegs grafisch ansprechende Rollenspiele für Linux gefunden – von OpenSource-Projekten ganz zu schweigen. Mit dem vorläufigen Aus von Rastullahs Lockenpracht ist wohl leider auch ein weiterer viel versprechender Kandidat ausgeschieden.

Bliebe noch die Online-Variante, die sogenannten MMORPGs. Bisher eigentlich ein Genre, das mich nicht so richtig gereizt hat – meine Zeit ist mir dann doch zu schade, um meinen Tagesablauf auf die Zeitplanung von Gildenpartnern abzustimmen. Und auch die latente Suchtwirkung dieser Spiele hat mich bisher immer zurückgehalten. Nicht zuletzt spiele ich dann doch nicht so viel, dass ich Lust hätte, auch noch monatliche Abo-Gebühren zu zahlen.

Aus dem Augenwinkel habe ich dabei schon länger PlaneShift beobachtet. PlaneShift ist ein quelloffenes Online-Rollenspiel, das sich derzeit zwar noch in der Entwicklung befindet, aber durchaus schon spielbar ist. Und irgendwann war dann doch die Neugier groß genug, so dass ich mir PlaneShift einmal näher angesehen habe. Hier also ein kleiner Erfahrungsbericht aus Yliakum. (Kleine Bemerkung vorweg: Da ich, wie erwähnt, bisher überhaupt keine Online-Rollenspiele kannte, kann ich auch nicht sagen, was PlaneShift von anderen MMORPGs unterscheidet. Dazu möge sich jeder ein eigenes Bild machen.)

Installation und erster Start

Um dem Spiel beitreten zu können, muss man zunächst einen Account anlegen. Das geht über die PlaneShift-Seite. Bei der Registrierung hat man die Wahl zwischen zwei Spiele-Servern: Zeroping, auf dem besonders viel Wert auf stilechtes Rollenspiel gelegt wird, und Ezpc, wo Rollenspiel weniger im Vordergrund steht. Das Rollenspiel ist einer der spannenderen Aspekte von PlaneShift, also habe ich mich für Zeroping entschieden.

PlaneShift ist für Windows, Mac OS X und Linux erhältlich. Den immerhin 430 MB großen Installer kann man einfach über BitTorrent oder einen der Mirror-Server herunterladen. Die Installation verläuft dann mit dem heruntergeladenen Installer recht problemlos. Ich habe mich der Einfachheit halber für eine Installation im Home-Verzeichnis entschieden. Wenn man den Installer aber nicht als Root laufen lässt, kann kein Starter im Anwendungsmenü erstellt werden. Mit einem kleinen Kniff kann man das aber leicht beheben: Einfach im Installer angeben, dass ein Starter auf dem Desktop erstellt werden soll. Die Datei Planeshift.desktop kann man dann einfach vom Desktop nach „.local/share/applications/“ verschieben, dann taucht auch der Starter im Menü auf.

Nach der Installation ruft man einen Launcher auf, der dem eigentlichen Spiel vorgeschaltet ist. Dieser weist einen auf neue Updates hin und installiert diese, ermöglicht einige Einstellungen wie etwa zur Auflösung und Grafikqualität, und startet letztlich das Spiel.

Charakter-Erstellung

Nach dem Login auf dem Server kann man sich einen Charakter erstellen. Insgesamt lassen sich bis zu vier Charaktere anlegen. Zur Auswahl stehen zwölf verschiedene Rassen. Insgesamt ist Yliakum, die Welt von Planeshift, in meinen Augen etwas abgefahrener als Herr der Ringe, Das Schwarze Auge, oder ähnliches. So gibt es neben den „klassischen“ Rassen wie Menschen, Elfen und Zwergen auch amphibische Wasserelfen, Katzenmenschen oder geflügelte Echsenmenschen. Leider stehen noch nicht für alle Rassen und Geschlechter die entsprechenden Charaktermodelle zur Verfügung, so dass man auf manche Rassen entweder verzichten muss, oder mit einer nicht ganz passenden Spielfigur durch die Welt zieht.

Nach der Festlegung von Rasse, Geschlecht und Aussehen fängt dann die eigentliche Charaktererstellung an. Das System zeigt den Rollenspiel-Fokus von PlaneShift und hat mir dabei sehr gut gefallen: Anstatt nun eine Beruf auszuwählen und Punkte auf bestimmte Fertigkeitswerte zu verteilen, schafft man seinem Charakter eine Geschichte: Vom Geburtstag, Eltern und Geschwistern über Kindheitsereignisse bis zu Erfahrungen in der Jugend. Am Ende hat man dann einen Charakter mit Stärken und Schwächen. Der Weg, den die Figur dann geht, ist aber völlig offen: Jeder Charakter kann im Laufe des Spiels prinzipiell alle Fähigkeiten und Berufe erlernen, selbst eine magische Ausbildung steht jedem offen.

Dem eigentlichen Spiel ist dann ein Tutorial vorgeschaltet. Dort trifft man einige Lehrmeister, die einen mit verschiedenen Aspekten des Spiels vertraut machen. Hat man dies alles durchlaufen, kann man in die Welt von Yliakum starten.

Unendliche Welten …

… warten in Yliakum nicht auf einen. Aber ein ziemlich großer Mikrokosmos. Derzeit besteht die Welt aus drei Städten und einigen kleineren Orten. Einiges mehr soll im Laufe der Entwicklung folgen. Aber auch so hat man einiges zu tun. Dabei ist man relativ frei, wie man sein Spiel gestaltet. Man kann eigentlich den Online-Charakter weitgehend ignorieren und einfach die Nicht-Spieler-Charaktere (NPCs) abklappern und nach Quests fragen. Die gestalten sich in der Regel eher unblutig und erinnern an das gute, alte Adventure-Prinzip: Man kriegt eine Aufgabe, muss jemanden fragen, der einen wieder zum dritten schickt, dem man dann drei Dinge besorgen muss, und irgendwann hat man die ursprüngliche Aufgabe gelöst.

Man kann aber auch einfach mal in die Kneipe gehen, und dort mit jemandem ein Bier trinken. Und dann taucht man so langsam in die Rollenspiel-Erfahrung ein, die einem Offline-Rollenspiele am Computer eben nicht bieten können. Und dort kann es einem dann etwa passieren, dass man in das Interview mit dem Sieger eines Pferde-, ach nee, Rivnak-Rennens gerät, dass eine Reporterin für die im Spiel herausgegebene Zeitung führt.

Technisches

Das Spiel wird über Tastatur und Maus gesteuert. Dabei können viele Aktionen mit IRC-ähnlichen Commandos ausgeführt werden – einige, seltener gebrauchte, sind auch nur so und nicht über die Maussteuerung erreichbar. Will man etwa an einem Fischteich sein Glück versuchen, nimmt man die Angel in die Hand und schreitet mit /fish zur Tat. Auch für die Kommunikation mit anderen Spielercharakteren sind die Kommandos hilfreich. Neben dem vom IRC bekannten /me passes a beer to Dulrik gibt es auch /greet (was eine entsprechende Geste der Figur einleitet), /wink, /laugh und sogar /kiss.

Die Grafik des Spiels ist ziemlich nett, aber vermutlich eher obere Mittelklasse. (Und, hey, Linux-User sind Nethack gewohnt, da ist 3D ja schon ein Kracher! wink )Die Welt wirkt aber insgesamt ziemlich liebevoll gestaltet. So unterscheiden sich die Städte nach den jeweils hauptsächlich ansässigen Rassen in ihrer Architektur. Insgesamt ist das Spiel sehr spielbar, aber man merkt hin und wieder doch, dass es noch in der Entwicklung ist. So sind etwa einige der Fertigkeiten, über die ein Charakter verfügt, de facto noch nicht benutzbar. Auch kann es hin und wieder vorkommen, dass sich Quests aufgrund von Fehlern nicht beenden lassen. Dafür gibt es aber sehr aktive Gamemaster und einen Bugtracker, in dem solche Probleme besprochen werden können und, je nach Komplexität, auch relativ schnell gefixt werden.

Fazit

PlaneShift ist ein wirklich ansprechendes Online-Rollenspiel, das vor allem durch seinen starken Fokus auf lebendiges Rollenspiel besticht. Zwar ist das Spiel noch in der Entwicklung, aber „gefühlt“ ist man über das Stadium der „Tech-Demo“, als die die Entwickler PlaneShift bezeichnen, hinaus. Und irgendwie ist es ja auch reizvoll, einer ganzen Welt bei der Entstehung und Entwicklung zuzusehen. (Und immerhin haben Linux-Nutzer ja Erfahrung im Erstellen von Bug-Reports. wink )

Die Evolution der PIM-Synchronisierung

, , , ...

Selten waren Darwin und Moses so einträchtig – SyncEvolution und Genesis sind in neuen Versionen erschienen und bringen PIM-Synchronisierung unter GNOME wieder einen Schritt voran.

SyncEvolution ist mittlerweile kein Freizeitprojekt mehr, sondern die offizielle Sync-Lösung von Moblin/MeeGo. Kein Wunder, dass die Entwicklung seit der letzten stabilen Version deutliche Schritte voran gemacht hat. Neu ist eine eigene GUI, aber auch unter der Haube hat sich einiges getan. Wer sich für die Details interessiert, dem sei die offizielle Release-Mitteilung ans Herz gelegt.

Schon zwei Tage vor dem Release von SyncEvolution 1.0 ist die darauf aufbauende Version 0.6 von Genesis, meinem leichtgewichtigen SyncEvolution-Frontend, erschienen. Die neue Version trägt dem geänderten Umfeld Rechnung, in dem Genesis steht: Der SyncEvolution-Kern bietet bessere Möglichkeiten, Frontends anzubinden und mit sync-ui bringt SyncEvolution nun selbst ein mächtiges Konfigurationswerkzeug mit. Aber auch Ubuntu hat mit dem AppIndicator das Benachrichtigungsfeld kräftig umgekrempelt und nebenbei schon wieder ein neues Icon-Thema für Panel-Icons etabliert.

All das hat dazu geführt, Genesis noch einmal (fast) von Grund auf neu zu schreiben. Es ist nur noch der Code aus den bisherigen Versionen übernommen worden, der nach wie vor gebraucht wird. Genesis setzt diesmal auf Quickly auf (über das ich ja schon einmal ausführlicher geschrieben habe). Dies soll vor allem neue Releases einfacher machen, da Quickly sich um den Paketbau und den Upload ins PPA kümmert. Auch für Quickly war dies ein guter Alltagstest, und nebenbei konnten ein paar Bugs identifiziert und behoben werden.

Viel Spaß mit der neuen Version!

Mal schnell was programmieren

, , , ...

Was bisher „Rapid Application Development“ genannt wurde, braucht unter Ubuntu jetzt einen neuen Namen: „Develop Applications Quickly!“

Wenn man mal ehrlich ist: Für viele ist der entscheidende Vorteil von OpenSource Software doch, dass sie kostenlos ist. Natürlich ist die Philosophie dahinter sympathisch, aber wer liest den tatsächlich den Code der Programme, die man benutzt? De facto teilt sich meiner Erfahrung nach die OpenSource-Gemeinschaft in die (wenigen) Programmierer, die wirklich was mit einem Quelltext anfangen können, und die (vielen) Benutzer, die einfach eine Software haben wollen, die funktioniert.

Ich persönlich finde aber das schöne an Linux als Betriebssystem, dass es tatsächlich ein dazwischen gibt: Nicht nur, dass man auf verschiedene Arten zu OpenSource beitragen kann. Auch der Einstieg in die Programmierung selbst ist einfacher, als man vielleicht denkt. Es fängt vielleicht beim einfachen Shell-Skript an, um eine Reihe von Bildern zu verarbeiten, und endet irgendwann bei einem kleinen, aber vollständigen Programm inklusive grafischer Benutzeroberfläche. In der Ubuntu-Community nimmt man so auch zunehmen die Gelegenheitsentwickler in den Blick. Diejenigen, die also nicht hauptberuflich Informatiker oder ähnliches sind und sowieso den ganzen Tag programmieren, sondern die Benutzer, die einfach gerne ab und zu mal ein kleines Programm schreiben, um ein ganz konkretes Problem zu lösen. So wurde im März die „Opportunistic Developers Week“ veranstaltet, die eben jenen Gelegenheitsprogrammierern einen Einblick in die neuen Möglichkeiten der Anwendungsentwicklung unter Ubuntu geben sollte.

In eine ähnliche Richtung geht Quickly, ein neues Framework für schnelle Anwendungsentwicklung. Das Ausgangsproblem ist schnell beschrieben: Programmieren lernen ist das eine. Hat man sich erst einmal durch die Tutorials gewühlt und verstanden, was Datentypen sind, wie man Schleifen und Bedingungen programmiert, sich vielleicht die Grundzüge von Objektorientierung erarbeitet, fangen viele Folgeprobleme erst an: Wie kriege ich jetzt eine grafische Oberfläche für mein erstes Programm? Wie baue ich Internationalisierung ein, damit man das Programm in verschiedene Sprachen übersetzen kann? Wie benutze ich ein Versionskontrollsystem, um meinen Code mit anderen zu teilen? Und wie baue ich Pakete, um anderen die Installation zu erleichtern? Jeder dieser Punkte braucht wieder Einarbeitung, wieder muss man sich durch verschiedene Tutorials wühlen, und für jeden Punkt wendet man wieder fast so viel Zeit auf wie für die eigentliche Programmierung.

Genau hier setzt Quickly an. Quickly stellt einem ein Skelett für die Programmierung bereit, also in etwa den Teil, den man ansonsten ohnehin per Copy und Paste aus diversen Tutorials übernommen hätte: Eine Basisstruktur für die Dateien in einem Projekt, die Anbindung an einen GUI-Designer, Code für die Internationalisierung und den Paketbau. Aber Quickly macht auch mehr: Quickly trifft gewisse Vorentscheidungen. Was routinierte Entwickler vielleicht als Bevormundung empfinden, ist für Einsteiger oftmals eine Hilfe: Sich nicht über zig Alternativen informieren, auswählen, Entscheidungen treffen, die man kaum einschätzen kann. Quickly macht hier gewisse Vorgaben: Python als Programmiersprache, Glade/GTKBuilder für die Oberflächengestaltung, bzr als Versionsverwaltung, Launchpad als Code-Hosting-Plattform. (All das lässt sich über sogenannte Templates festlegen. Es spricht also nichts dagegen, ein Template für KDE-Programme zu schreiben, das auf git/GitHub setzt. Es hat nur noch niemand getan.)

Von der Benutzung greift Quickly vieles auf, was Web-Frameworks bieten: Wer etwa Django kennt, und dessen Kommandozeilenhelfer django-admin, dem wird quickly bekannt vorkommen. Aber auch so versteht man das Prinzip schnell.

$ quickly create ubuntu-application myapp

erzeugt ein neues Projekt myapp auf der Basis der Vorlage ubuntu-application (derzeit stehen daneben noch ubuntu-cli und ubuntu-pygame zur Verfügung). Dabei wird ein Grundgerüst angelegt, bestehend aus GTKBuilder- und Python-Dateien für ein Programmfenster, einen Einstellungsdialog, einen About-Dialog und etwas Kleister, der das Ganze zusammenhält. Ist man mit „$ cd myapp“ in das neu erstellte Projektverzeichnis gewechselt, kann man Projektspezifische Befehle ausführen:

$ quickly tutorial

zeigt etwa ein schönes, bebildertes Tutorial im Hilfebrowser an, das einem die Funktionsweise von Quickly und die ersten Schritte bei der Programmierung erklärt.

$ quickly commands

listet alle verfügbaren Befehle auf, die man sich mit
$ quickly help <command>

erläutern lassen kann.

Richtig los geht es dann mit
$ quickly design


Damit werden alle UI-Dateien im Glade Interface-Designer geöffnet, so dass man die Oberfläche seines Programms gestalten kann. Den zugehörigen Code bearbeitet man mit
$ quickly edit

woraufhin die Python-Dateien in gedit geöffnet werden.

$ quickly run

startet dann das Programm, so dass man es ausprobieren kann. Entsprechende Befehle gibt es, um das Projekt in bzr zu speichern, auf Launchpad hochzuladen, oder ein Installationspaket daraus zu bauen (wobei gleich auch die Übersetzungsvorlagen angelegt werden). Insgesamt geht mit Quickly vieles leicht von der Hand, wofür man sich früher relativ lange einarbeiten musste.

Das ganze hat aber auch einen Preis: Man muss sich in sein eigenes Programm erst einmal einlesen. Gerade Einsteigern fällt es oft leichter (zumindest kann ich das aus eigener Erfahrung sagen), selbst Code zu schreiben, als Code von anderen zu lesen und zu verstehen. Es ist oft erst einmal mühselig, nachzuvollziehen, wie die einzelnen Komponenten miteinander zusammenhängen. Dadurch, dass ein Quickly-Programm schon viel Infrastruktur mitbringt, muss man sich erst einmal die Zeit nehmen, zu verstehen, was da schon passiert und an welchen Stellen man nun seinen eigenen Code einfügt oder Modifikationen vornimmt. Der Code ist aber gut kommentiert und das Tutorial erklärt alle Schritte, so dass sich die Mühe am Anfang durchaus lohnt.

Geteilter Desktop ist doppelte Freude

, , , ...

Manchmal braucht man einfach etwas Hilfe. Zum Beispiel am Computer. Doch nicht immer ist der Helfende auch vor Ort und kann einem direkt über die Schulter gucken. In solchen Fällen kann es ungemein praktisch sein, einfach seinen Desktop für jemand anderes freizugeben, so dass der Helfende sich direkt ein Bild machen kann.

Unter Ubuntu ist das Mittel der Wahl dafür oft VNC. Das Thema ist jedoch nicht gerade trivial, wie man etwa an der Länge des Artikels im Ubuntuusers-Wiki sehen kann. Gerade, wenn die Hilfe übers Internet erfolgen soll, kann es kompliziert werden: Da VNC von Haus aus nicht verschlüsselt, sollten VNC-Verbindungen in diesem Fall über SSH erfolgen. Das hat oft genug bedeutet: Einen SSH-Server installieren, Ports auf dem Router freigeben, einen SSH-Tunnel aufbauen, die VNC-Verbindung herstellen. Wenn so viel Arbeit notwendig ist, bevor man sich überhaupt dem eigentlichen Problem widmen kann, überlegt man sich zweimal, ob es die Mühe wert ist.

Zum Glück macht das Thema unter GNOME einige Fortschritte. GNOME hat mit Vino schon lange einen VNC-Server an Bord. Mit Vinagre ist vor einiger Zeit ein hübscher VNC-Betrachter hinzugekommen. Im lokalen Netzwerk ist es dank Avahi ein Leichtes, seinen Desktop freizugeben. Ist Vino einmal aktiviert, findet Vinagre die verfügbaren Desktops auf anderen Rechnern und zeigt sie in der Seitenleiste an:


Die Vino-Einstellungen, bei Ubuntu unter „System → Einstellungen → Entfernter Bildschirm“ zu finden


Vinagre zeigt lokale Desktops an, bei Ubuntu unter „Anwendungen → Internet → Betrachter für entfernte Bildschirme“ zu finden

Dank Empathy, dem (relativ) neuen Instant-Messenger von GNOME, und Telepathy, dem darunter liegenden Framework, geht es nun aber auch über’s Internet endlich schnell und einfach. Voraussetzung ist ein Jabber-Konto. In der Empathy-Kontaktliste kann man dann über das Kontextmenü ganz einfach seinen Desktop freigeben:



Automagisch wird dann mit Vino und Vinagre eine Verbindung über Telepathy hergestellt, sobald die andere Seite die Anfrage bestätigt. Einfacher kann es eigentlich nicht mehr funktionieren.

Navigation durch die See der Navigatoren

, , , ...

Der Browser ist wohl eines der wichtigsten Programme, die man täglich benutzt. Der Firefox, Ubuntus Standardbrowser, gehört dabei zu den meistverwendeten Browsern, neben Microsofts Internet Explorer. Und obwohl ich den Firefox durchaus schätze (und auf der Arbeit auch verwende, nicht zuletzt wegen Zotero), ist er nicht unbedingt mein Lieblingsbrowser. Er ist mir etwas zu schwerfällig und braucht mit einigen Addons auch relativ lange zum Starten.

Lange Zeit (und schon vor meinem Wechsel zu Ubuntu unter Windows) war Opera mein Favorit. Klein, schnell, und viele Funktionen eingebaut, die man bei anderen Browsern erst per Addon nachrüsten muss. Unter Linux hat mich aber eines schon länger gestört: Während die meisten Programme dank GTK einen schönen, gemeinsamen Look teilen (und auch Qt4 war hier ein Sprung vorwärts für den einheitlichen GNOME-Desktop), hat Opera eigene Skins. Mit entsprechenden Skins konnte man aber durchaus einen GNOME-ähnlichen Look hinbekommen.

Unter Lucid sieht das ganze aber einfach nicht mehr so gut aus. So werden z.B. die Menüs nicht dem Ambiance-Theme entsprechend dunkel dargestellt, und die Schrift passt auch nicht richtig zum Desktop:


Lange wollte ich nicht rumbasteln, sondern habe mich statt dessen entschieden, mal einem neuen Browser eine Chance zu geben. Einem Browser, der sich gut in den GNOME-Desktop integriert. Firefox ist mir, wie gesagt, etwas zu fett. Ein schon länger vorhandener Bug führt zudem dazu, dass die Schrifteinstellungen des Desktops nicht berücksichtigt werden (auch wenn man dies mit einem Workaround beheben kann):


Also weitersuchen. Unter GNOME bietet sich da natürlich Epiphany an, der eigentlich Standardbrowser von GNOME. Seit einiger Zeit setzt Epiphany nicht mehr auf Gecko, die Rendering-Engine vom Firefox, sondern auf WebKit. (WebKit ist ja jener KHTML-Abkömmling, der spätestens mit dem iPhone-Browser einige Prominenz erhalten hat, und nun auch zum neuen Star der Rendering-Engines unter Linux avanciert.) Epiphany punktet vor allem durch seine Schlichtheit. Ganz der GNOME-Philosophie folgend, soll sich Epiphany ganz auf seine Hauptaufgabe konzentrieren, das Navigieren durchs Web. Mir persönlich ist Epiphany aber ein bisschen zu spartanisch. Als Opera-Nutzer ist man vielleicht etwas mehr Komfort gewöhnt. Außerdem weiß ich nicht, ob es der beste Fix für den Bug mit den zu kleinen Schriften ist, einfach prominent Buttons für die Schriftgrößenänderung zu platzieren.

Mir ist dann noch Midori eingefallen. Midori ist ein leichtgewichtiger, auf GTK und WebKit aufbauender Browser, der es mittlerweile zum Standardbrowser des Xfce-Desktops gebracht hat. Und ich muss sagen: Ich bin sehr beeindruckt. Midori startet schnell (ca. 5 Sekunden, während Firefox bei mir eher 15 braucht). Mit Midori kann man natürlich vor allem browsen, aber es hat auch einige nette Zusatzfunktionen. Und einiges erinnert durchaus an Opera: Am auffälligsten ist vermutlich die Schnellwahl, die in leeren Tabs angezeigt wird und einen schnellen Zugriff auf ausgewählte Seiten erlaubt. Aber auch eine Seitenleiste, die Verlauf, Lesezeichen und einiges mehr beherbergt, ist von Opera bekannt. Midori erlaubt darüber hinaus, geschlossene Tabs wieder zu öffnen und hat einen privaten Modus (wobei auch schon bei Firefox böse Zungen behaupten, das „P“ stehe eher für „porn“ denn für „private“).


Hier sieht man Midori im fröhlichen Reigen der behandelten Browser:


Ganz ungetrübt ist die Browsing-Freude nicht, so tun sich manche Websites mit Midori schwer. Das kennt man aber auch von Opera, und in einigen Fällen (wie etwa bei Google Maps) kann man dies beheben, indem man Midori einfach als Safari ausgibt. Den Firefox habe ich sowieso immer drauf und kann zur Not darauf zurückgreifen. Aber für den alltäglichen Gebrauch gefällt mir Midori bisher sehr gut. Ich werde ihn erst einmal zu meinem Standardbrowser machen und gucken, ob ich auf Dauer damit zufrieden bin. (Die kommende Version 10.50 von Opera werde ich aber natürlich auch einmal ausprobieren.)

Einmal runterladen, beliebig oft upgraden

, ,

Lucid Lynx steht vor der Tür, und so mancher Rechner wartet in den nächsten Wochen sicherlich darauf, auf die neue Version aktualisiert zu werden. Damit ist jedoch auch zunächst eine ganze Download-Orgie verbunden: Wählt man die Upgrade-Prozedur über die Aktualisierungsverwaltung, müssen alle zu aktualisierenden Pakete auf jedem Rechner heruntergeladen werden. Das belastet nicht nur die Server, es dauert auch einfach – je nach Verbindung – ziemlich lange. Da wäre es doch sinnvoll, wenn man die Pakete nur einmal runterladen muss, und sie dann auf verschiedenen Rechnern verwenden kann. Dazu gibt es verschiedene Lösungen, eine recht unkomplizierte möchte ich hier kurz vorstellen: apt-cacher-ng. (Im Wiki von Ubuntuusers gibt es die Anleitung in voller Länge; hier nur die Schnellversion.)

Zwischenspeicher einrichten

Zunächst sollte man einen Rechner als Zwischenspeicher wählen. Dieser lädt alle Pakete runter, und stellt sie anderen Rechnern im Netzwerk zur Verfügung. Sollte ein anderer Rechner ein Paket anfordern, dass er selbst noch nicht im Zwischenspeicher hat, lädt er auch dieses und fügt es so dem allgemeinen Paketpool hinzu. Dazu ist erst einmal nicht mehr nötig, als das Paket apt-cacher-ng zu installieren. Will man die Konfiguration in den Standardeinstellungen übernehmen, was ich getan habe, ist nicht mehr zu tun.

Paketverwaltung auf den Zwischenspeicher umlenken

Nun muss noch allen Rechnern gesagt werden, dass sie aus dem gemeinsamen Zwischenspeicher herunterladen sollen. Auch der Rechner, der den Zwischenspeicher bereitstellt, sollte entsprechend eingerichtet werden, damit auch er beim Herunterladen fleißig den gemeinsamen Pool befüllt. Daher führt man auf dem Rechner mit dem Zwischenspeicher folgenden Befehl aus:
echo 'Acquire::http { Proxy "http://localhost:3142"; };' | sudo tee /etc/apt/apt.conf.d/01proxy
Auf allen anderen Rechnern gibt man statt „localhost“ die Netzwerkadresse des Rechners an. Das kann die IP sein, im lokalen Netzwerk dank Avahi aber auch einfach „rechnername.local“. Ab jetzt werden alle Pakete aus dem gemeinsamen Zwischenspeicher bezogen.

Wer zu spät kommt, kriegt noch eine Chance

Was aber, wenn man auf einem Rechner schon die Aktualisierung durchgeführt hat, bevor apt-cacher-ng eingerichtet war? In diesem Fall kann man die Pakete auch nachträglich dem Pool hinzufügen. Dazu sollte man aber jetzt den entsprechenden Rechner einrichten, und einmal die Paketquellen aktualisieren („apt-get bzw. aptitude update“). Das ist nötig, damit apt-cacher-ng die Pakete ihrer Herkunftsquelle zuordnen kann. Nun verlinkt man die vorhandenen Pakete aus dem üblichen apt-Zwischenspeicher in den Pool von apt-cacher-ng:
sudo mkdir -p /var/cache/apt-cacher-ng/_import
sudo chown apt-cacher-ng /var/cache/apt-cacher-ng/_import
sudo cp -al /var/cache/apt/archives/* /var/cache/apt-cacher-ng/_import/ 
Nun besucht man mit im Browser die Seite http://localhost:3142/acng-report.html. Ganz am Ende der Seite (die übrigens auch so nette Statistiken über den Cache zeigt), kann man dann den Import über den entsprechenden Button starten.

Dem Spuk ein Ende bereiten

Da der Cache-Rechner nicht unbedingt immer läuft, kann es auch sein, dass man nach dem großen Upgrade lieber wieder auf den Zwischenspeicher verzichten will. Dies ist zum Glück sehr einfach, auf den Clients ist nur folgendes auszuführen:
sudo rm /etc/apt/apt.conf.d/01proxy
Damit wird wieder der vorher eingestellt Download-Server verwendet.

Creative Commons License
Einmal runterladen, beliebig oft upgraden von Frederik Elwert steht unter einer Creative Commons Namensnennung-Keine kommerzielle Nutzung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.
Beruht auf einem Inhalt unter wiki.ubuntuusers.de.

Ubuntus neues Design – die dreihundertfünfundsiebzigste

, , , ...

Das neue Design der kommenden Ubuntu-Version Lucid Lynx ist enthüllt, und schon bricht ein Sturm aus. Aber das war wohl auch nicht anders zu erwarten. Also kann es auch nicht schaden, wenn ich auch noch meinen Senf dazu gebe.

Eigentlich bin ich bei diesem Thema relativ emotionslos. Ich finde das neue Thema nicht schlecht, aber auch nicht überwältigend. Dass die Fensterknöpfe nun links statt rechts sein sollen, finde ich ungewohnt, aber keine Katastrophe. Dass ein ganzes Designteam besseres schaffen könnte, finde ich durchaus zutreffend, aber auch nicht ungewöhnlich.

Ein Artikel von Pinguinzubehör hat mich aber auch noch mal zum Nachdenken gebracht. Kernaussage:

Das wirklich Tragische am neuen Ubuntu-Design ist jedoch, dass alles wirklich sehr gut aussieht. […]
Allein – alles zusammen sieht grausam aus, es scheint nichts zusammenzupassen.



Und in der Tat ist das auffällig. Vor allem die Kombination von Fensterdekoration und GTK-Thema finde ich irritierend. Kerngedanke ist ja, ein helles und ein dunkles Thema anzubieten. In beiden Fällen passen Fensterdekoration und GTK-Thema in meinen Augen jedoch überhaupt nicht zusammen. Die dunkle Festerdekoration ist in Dunkelgrau gehalten und wirkt eher kühl. Das dazugehörige GTK-Thema jedoch greift das (von vielen, wenn auch nicht von mir, gehasste) Braun wieder auf und wirkt damit deutlich wärmer. Beim hellen Thema ist es anders herum: Die helle Fensterdekoration ist mit ihrem Beige eher warm. Das helle GTK-Thema kommt dagegen in kühlem Grau daher.

Auf die schnelle habe ich mal den GIMP angeworfen und als kleines Experiment Dekoration und GTK-Thema ausgetauscht. Und siehe da: Für meinen Geschmack ein deutlich stimmigeres Bild. Zwar treffen die Attribute „hell“ und „dunkel“ jetzt nur noch bedingt zu; vielmehr hat das eine Thema jetzt einen relativ geringen Kontrast zwischen Fensterdeko und Fensterinhalt, das zweite dagegen einen eher starken. Aber insgesamt scheint es mir so besser zu passen.

Auch wenn ich insgesamt skeptisch bin, welche Auswirkungen die zahlreichen Kommentare aus der Community auf den tatsächlichen Entwicklungsprozess haben, muss ich mir jetzt zumindest nicht vorwerfen, geschwiegen zu haben. Schauen wir einfach mal, wie die Entwicklung weitergeht. Insgesamt bin ich ganz zuversichtlich, und austauschen kann man die Designs am Ende ja immer noch.