-
freiesMagazin Juni 2012
Topthemen dieser Ausgabe
Ubuntu und Kubuntu 12.04 LTS Seite 3
Als äußerst geschliffenes Produkt präsentiert sich das neue
Ubuntu 12.04 LTS „Precise Pango-lin“, wie es sich für eine
Distribution mit mehrjähriger Stabilitätsgarantie gehört. Der
Artikel solleinen Überblick über die Neuerungen der beiden Version
mit Unity und KDE als Desktopmana-ger geben. (weiterlesen)
Routino Seite 22Kaum ein Gemeinschaftsprojekt hat in kurzer Zeit
soviel Zuspruch und Unterstützung erhaltenwie OpenStreetMap. Die
weltweite Karte hat in vielen Ländern, darunter auch
Deutschland,einen Detailreichtum erlangt, der kommerzielle
Kartenanbieter schlecht aussehen lässt. Einanderes, zunehmend
interessantes Anwendungsgebiet ist die Navigation auf Basis der
OSM-Daten. Im Wiki von OSM werden verschiedene Programme und
Web-Seiten vorgestellt. DieserArtikel greift ein Programm heraus,
das etwas unglücklich im Wiki als „web-based router“ be-zeichnet
wird: Routino. (weiterlesen)
Trine 2 Seite 28
Genau ein Jahr, nachdem das Erfolgsspiel Trine im Humble
Frozenbyte Bundle erschienenist, hat der finnische Spieleentwickler
Frozenbyte den zweiten Teil für Linux im April 2012vorgestellt. Der
Artikel wirft einen Blick auf Trine 2 und vergleicht ihn mit seinem
Vorgän-ger. (weiterlesen)
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 ISSN 1867-7991
http://creativecommons.org/licenses/by-sa/3.0/deed.de
-
MAGAZIN
Editorial
Spielen unter LinuxVor wenigen Tagen erschien das Humble
IndieBundle V [1] und wirft damit wieder einmal dieFrage nach Linux
als Spieleplattform auf.
Der Hintergrund: Das erste Humble Bundle er-schien vor gut zwei
Jahren im Mai 2010 und botfünf Spiele diverser unabhängiger
Entwicklerfir-men zum Selbstbestimmungspreis an. Die Be-sonderheit:
Die Spiele standen nicht nur wie ge-wöhnlich unter Windows zur
Verfügung, sondernebenso unter Mac OS X und – was
wesentlichinteressanter war – auch unter Linux.
Im Laufe der zwei Jahre gab es immer mehr Hum-ble Bundles (hier
ein paar Statistiken [2]) in ver-schiedenen Ausprägungen. Die
letzten Monatehäuften sich die Veröffentlichungen aber und
dieQualität der Spiele sank etwas, sodass sich et-was Unmut breit
machte. Als das letzte HumbleBotanicula Bundle auch noch ein Spiel
lieferte,welches auf Adobe Air aufsetzt, welches unterLinux schon
seit längerem nicht mehr von Adobegepflegt wird, fühlten sich die
Linux-Anhängerdoch etwas veralbert. Im neuesten Humble Bund-le
treiben die Macher das Ganze mit dem SpielLimbo auf die Spitze:
Denn effektiv wird Wine mitausgeliefert, in dem Limbo dann
läuft.
Da stellt sich die Frage: Was erwarten Spieler un-ter Linux von
den Spieleherstellern? Muss es im-mer eine native Version sein, die
extra für Linuxangepasst werden muss? Eine native Version hat
sicherlich ihre Vorteile, wie der Artikel zu Trine 2zeigt,
kostet aber natürlich auch viel Know Howsowie natürlich Geld und
noch mehr Zeit. Oderreicht vielleicht schon eine Flash-Version?
Natür-lich handelt es sich um eine unfreie Lösung, aberes ist
besser als gar keine Linux-Unterstützung.
Man könnte also froh sein, dass die Macher vonLimbo sich
zumindest ansatzweise angestrengtund die Linux-Nutzer auf ihrem
Schirm haben.Die Frage ist, ob das stimmt. Und ebenfalls fragtman
sich als Spieler unter Linux, ob man alleshinnehmen muss, was einem
vorgesetzt wird, nurweil man dankbar sein soll, nicht übersehen
wor-den zu sein.
Es gibt gewiss keine einfache Antwort auf die-se Fragen, aber
zumindest zeigen die Spiele ausdem Humble Bundle immer wieder, dass
es im-mer mehr Spielerhersteller gibt, die zumindestvon Linux
gehört haben – auch wenn Tim Schae-fer im Ankündigungsvideo einen
anderen Ein-druck vermittelt [3].
Wie stehen Sie denn zu dem Thema? Ist derLinux-Desktop eine
realistische Alternative zuWindows, wenn es um Spiele geht? Und
fallsja, reicht Wine aus oder sollte es mehr na-tive Unterstützung
seitens der Spieleherstellergeben? Schreiben Sie uns Ihre Meinung
unter
oder in den Kom-mentaren über den Link am Ende der Seite.
Ihre freiesMagazin-Redaktion
InhaltLinux allgemeinUbuntu und Kubuntu 12.04 LTS S. 3Der Mai im
Kernelrückblick S. 11
AnleitungenObjektorientierte Programmierung: Teil 4 –Strategie,
wechsel Dich!
S. 13
Cloud-Backup mit Bordmitteln S. 17
SoftwareRoutino S. 22Trine 2 S. 28
CommunityRezension: LPIC-1 – Sicher zur erfolgrei-chen
Linux-Zertifizierung
S. 33
MagazinLeserbriefe S. 35Veranstaltungen S. 36Vorschau S.
36Konventionen S. 36Impressum S. 37
LINKS[1] http://www.humblebundle.com/[2]
http://cheesetalks.twolofbees.com/humble/[3]
http://www.youtube.com/watch?v=zwANFc7D1
ac
Das Editorial kommentieren
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 2
http://www.humblebundle.com/http://cheesetalks.twolofbees.com/humble/http://www.youtube.com/watch?v=zwANFc7D1achttp://www.humblebundle.com/http://cheesetalks.twolofbees.com/humble/http://www.youtube.com/watch?v=zwANFc7D1achttp://www.youtube.com/watch?v=zwANFc7D1achttp://www.freiesmagazin.de/comment/reply/275?edit[subject]=Editorial#comment-formhttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DISTRIBUTION
Ubuntu und Kubuntu 12.04 LTS von Hans-Joachim Baader
A ls äußerst geschliffenes Produktpräsentiert sich das neue
Ubuntu12.04 LTS „Precise Pangolin“, wie essich für eine
Distribution mit mehrjährigerStabilitätsgarantie gehört. Der
Artikel solleinen Überblick über die Neuerungen der bei-den Version
mit Unity und KDE als Desktop-manager geben.
Redaktioneller Hinweis: Der Artikel „Ubuntuund Kubuntu 12.04
LTS“ erschien erstmals beiPro-Linux [1].
VorwortZwei Jahre nach Ubuntu 10.04 LTS [2] ist Ubuntu12.04 LTS
die nächste Version mit einer auf fünfJahre ausgedehnten
Unterstützung (Long TermSupport, LTS). Diese fünf Jahre
Unterstützunggelten jetzt ebenso für den Desktop, sowohl fürUnity
als auch für KDE und die meisten ande-ren Varianten. Die neue
Version ist nach Anga-ben des Herstellers die bisher
umfangreichste.Nicht nur viele neue Funktionen, sondern auch ei-ne
verbesserte Qualitätssicherung sollen Ubuntu12.04 LTS
auszeichnen.
Die neue Version bringt, in aller Kürze zu-sammengefasst, den
Kernel Linux 3.2.14, dieneuesten Versionen der Desktopumgebun-gen,
viele neue bzw. aktualisierte Programme,das Head-Up-Display (HUD)
für Unity, Server-Erweiterungen vor allem im Bereich
Virtuali-sierung und Cloud, aber auch Varianten für
Unity-Übersichtsseite mit Linsen.
ARM-basierte Geräte. Im Rahmen des Mögli-chen sollen die
Änderungen genauer betrachtetwerden. Dabei wird sich der Artikel
auf die Desk-topumgebungen Unity und KDE beschränken.
Wie immer sei angemerkt, dass es sich hiernicht um einen Test
der Hardwarekompatibilitäthandelt. Es ist bekannt, dass Linux mehr
Hard-ware unterstützt als jedes andere Betriebssys-
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 3
http://www.pro-linux.de/artikel/2/1567/ubuntu-und-kubuntu-1204-lts.htmlhttp://www.freiesmagazin.de/freiesMagazin-2010-06http://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_linsen.jpghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_linsen.jpghttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DISTRIBUTION
tem, und das überwiegend bereits im Standard-Lieferumfang. Ein
Test spezifischer Hardware wä-re zu viel Aufwand für wenig Nutzen.
Falls manauf Probleme mit der Hardware stößt, stehen dieWebseiten
von Ubuntu zur Lösung bereit.
Da eine Erprobung auf realer Hardware nicht dasZiel des Artikels
ist, werden für den Artikel zweiidentische virtuelle Maschinen, 64
Bit, unter KVMmit jeweils 768 MB RAM verwendet.
InstallationUbuntu wird meist von einem Live-System aus,das als
CD und umfangreichere DVD verfüg-bar ist, installiert. Die DVD
wurde gegenüberfrüheren Versionen deutlich verkleinert und istnur
noch 1,5 GB groß, was das Herunterladenerleichtert. Ferner ist eine
Installation von derAlternate-CD möglich, die im Textmodus
läuft,aber wesentlich mehr Flexibilität als die
grafischeInstallation besitzt.
Für Ubuntu 12.04 [3] werden nach wie vor384 MB RAM für den
Unity-Desktop als Mindest-anforderung angegeben [4]. Mehr ist
allerdingsbesser. Auch für Kubuntu sollten es 512 MB RAModer mehr
sein. Xubuntu und die Server-Editionsollten weiterhin mit 128 MB
auskommen.
Hier soll nur die Installation von der Desktop-DVD kurz
vorgestellt werden. Wer den Logical Vo-lume Manager (LVM) verwenden
will, muss zurtextbasierten Installation von der DVD oder
derAlternate-CD wechseln, da diese Möglichkeit imgrafischen
Installer weiterhin fehlt. Die Alternate-Installation läuft
ansonsten fast genauso ab wie
die grafische Installation. Durch Boot-Optionensteht aber eine
erweiterte Installation zur Verfü-gung, mit der man weitgehende
Kontrolle überden ganzen Vorgang hat. Auch die auf Laptopszu
empfehlende Option, die gesamte Festplattezu verschlüsseln, gibt es
nur auf der Alternate-CD.
Die Installation unterlag keinen sichtbaren Ände-rungen
gegenüber der letzten Version. Standard-mäßig wird nur eine einzige
große Partition mitdem Dateisystem ext4 sowie eine
Swap-Partitionangelegt. Will man mehr Flexibilität, muss man„Etwas
anderes“ auswählen, wodurch das Parti-tionierungswerkzeug gestartet
wird. Dort könnendie gängigen Dateisysteme einschließlich
Btrfsausgewählt werden.
Partitionierungswerkzeug.
Direkt nach der Definition der Partitionen beginntder Installer
mit der Partitionierung und der Instal-lation der Pakete im
Hintergrund. Ein Fortschritts-balken zeigt von hier an den Stand
der Instal-lation an. Parallel dazu kann man die Zeitzoneauswählen
und danach das gewünschte Tastatur-Layout einstellen.
Im letzten Schritt gibt man seinen Namen, Anmel-denamen,
Passwort und den Computernamenein. Wenn zuvor bereits per DHCP ein
Nameermittelt werden konnte, wird dieser als Vorga-be angezeigt.
Wenn erkannt wird, dass die In-stallation in einer virtuellen
Maschine läuft, wirddagegen der Name benutzer-virtual-machine
vor-gegeben. Optional können Daten im Home-Verzeichnis
verschlüsselt werden. Während man
das Ende der Installa-tion abwartet, kann mannun noch einige
Tipps zuUbuntu ansehen.
AusstattungSowohl Ubuntu als auchKubuntu starten
schnell,mindestens genausoschnell wie in der Vorver-sion. Wieder
wurde dasAussehen des Desktopsleicht modifiziert, unter Ku-buntu
etwas mehr als unterUbuntu.
X.org 7.6 mit dem X-Server1.11.3 und Mesa 8.0.2
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 4
https://help.ubuntu.com/12.04/https://wiki.ubuntu.com/PrecisePangolin/ReleaseNotes/UbuntuDesktophttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_partitionierung.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_partitionierung.pnghttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DISTRIBUTION
bilden die Basis für die grafische Oberflä-che einschließlich
der 3-D-Beschleunigung. DerKernel 3.2.14 ist zwei Versionen neuer
als inUbuntu 11.10 und ein langfristig unterstützterKernel. Aus
Benutzersicht bedeutet das eine Viel-zahl zusätzlicher Treiber und
viele Optimierun-gen. Daneben enthält der Kernel viele neue
Fea-tures, die nur für Spezialisten von Interesse sind.
Für Entwickler stehen GCC 4.6.3, Python 2.7.3und 3.2.3, OpenJDK
6b24 und 7u3 und vielesmehr bereit.
Die DNS-Auflösung wird jetzt von dem immerinstallierten dnsmasq
übernommen, wovon sichder Distributor eine schnellere Auflösung
undbessere VPN-Unterstützung verspricht.
Serverseitig wurden die neue Metal as a Ser-vice (MAAS)
Infrastruktur [5] und der Juju CharmStore eingeführt. OpenStack
wurde auf dieneueste Version Essex aktualisiert. Zentyal undOpenMPI
1.5 für ARM wurden den Repositoryshinzugefügt. Das in Version 1.0
enthaltene KVMerlaubt nun virtuelle Maschinen innerhalb von
vir-tuellen Maschinen. Damit können Instanzen, diein einer Cloud
laufen und somit bereits selbst vir-tuelle Maschinen sind, eigene
virtuelle Maschi-nen definieren.
Wie gewohnt hat Root keinen direkten Zugangzum System, sondern
die Benutzer der Gruppesudo können über das Kommando sudo
Befehleals Root ausführen. Der Gruppenname sudo istneu in dieser
Version; der bisherige Gruppenna-me admin funktioniert aber immer
noch. Wenn
man, nachdem man als Root eingeloggt ist, einPasswort vergibt,
ist auch das direkte Einloggenals Root möglich.
Unity und KDE benötigen in der Standardinstalla-tion mit einem
geöffneten Terminal-Fenster jetztfast gleich viel Speicher – etwa
380 MB RAM ein-schließlich der im Swap ausgelagerten Seiten.Die
Messung des Speicherverbrauchs der Desk-tops kann jeweils nur
ungefähre Werte ermitteln,die zudem in Abhängigkeit von der
Hardware undanderen Faktoren schwanken. Aber als Anhalts-punkt
sollten sie allemal genügen.
Das HUD mit Firefox.
Bei der Geschwindig-keit lässt sich keinnennenswerter
Unter-schied zwischen denDesktops feststellen,sofern genug
RAMvorhanden ist. Mitden hier verwendeten768 MB RAM laufendie
meisten Aktionenflüssig.
UnityUnity ist das großeDesktop-Thema fürUbuntu. Nachdem
Ku-buntu zum Gemein-schaftsprojekt herun-tergestuft wurde, gibtes
keine Desktopum-gebung mehr, die ganz
gleichberechtigt neben Unity steht. Dennochsoll im nächsten
Abschnitt auch KDE betrachtetwerden, da es eines der wichtigsten
Desktop-Systeme für Linux ist.
In dieser Version wurde Unity wieder stark über-arbeitet,
poliert und zum krönenden Abschlussgebracht. Unter Unity arbeiten
viele Komponen-ten von GNOME 3. Das eigentliche Unity setzt ei-ne
Hardwarebeschleunigung der 3-D-Grafik vor-aus und nutzt den
Compositing-Manager Com-piz. Steht keine Hardwarebeschleunigung
zurVerfügung, wird automatisch Unity 2D genutzt,
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 5
http://www.pro-linux.de/news/1/18238/canonical-bringt-metal-as-a-service-maas.htmlhttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_hud.jpghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_hud.jpghttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DISTRIBUTION
das kaum vom normalen Unity zu unterscheidenist. Zwar ist Unity
2D mit Qt implementiert unddürfte sich damit intern erheblich von
Unity un-terscheiden, aber es nutzt sogar Grafikeffekte,wenn auch
weniger als Unity.
Die größte Änderung in dieser Version von Uni-ty ist natürlich
das Head-Up-Display (HUD). Esfunktioniert tatsächlich so wie
angekündigt [6]und stellt eine echte Innovation und Bereiche-rung
dar. Die Funktionsweise ist, dass nach ei-nem kurzen Drücken der
Alt -Taste eine Einga-bemaske erscheint, die eine Suchfunktion für
dieMenüpunkte der Anwendung implementiert. Sieunterstützt die
inkrementelle Suche, d. h. mit je-der eingegebenen Taste wird das
Ergebnis ver-feinert. Das System führt eine unscharfe Suchedurch
und zeigt alle passenden Menüpunkte un-mittelbar an. Daraus kann
man schnell den ge-wünschten auswählen.
Das System ist lernfähig und stellt die Menüein-träge ganz oben
dar, die man am häufigsten ge-wählt hat. Neben der aktiven
Anwendung werdenauch Systemaktionen in die Auswahl einbezogen,so
dass man auch schnell Funktionen erreichenkann, die in den
System-Menüs liegen. Will mandas HUD loswerden, ohne einen Eintrag
auszu-wählen, muss man noch einmal Alt drücken.
Die größte optische Änderung von Unity ist indieser Version,
dass der Starter immer sichtbarbleibt. Es lässt sich auch
konfigurieren, dass derStarter wie früher ausgeblendet wird, wenn
ergerade nicht benötigt wird. Die Icons im Starter
Tradition: So kann Unity nach einigen Änderungen aussehen.
zeigen nützliche Informationen an, z. B. wievie-le Fenster einer
Anwendung offen sind und obsie aktiviert sind. Zudem ist der
Programmstartan animierten Icons zu erkennen. Optisch ver-bindet
der Starter also Nützliches und Ange-nehmes. Und endlich einmal
werden Effekte so
angewandt, dass sie nützlich sind und nicht stö-ren. Es sind
solche eher kleinen Details, die dieArbeit angenehm machen.Die in
der letzten Version eingeführten „Linsen“sind im Wesentlichen
gleich geblieben. Die Start-seite (Dash) enthält eine allgemeine
Suche, da-
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 6
http://www.pro-linux.de/news/1/17957/head-up-display-revolutioniert-menues-in-ubuntu-1204.htmlhttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_libreoffice.jpghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_libreoffice.jpghttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DISTRIBUTION
neben gibt es noch Linsen für Anwendungen,Dateien, Musik und
Videos. Die Suchergebnis-se beziehen auch Musik und Videos aus
demUbuntu One Online-Shop ein.
Richtig konfigurierbar ist Unity auch weiterhinnicht. Die schon
erwähnte Einstellung des Star-ters, immer oder nur bei Bedarf
sichtbar zu sein,ist die einzige direkt zugängliche, und in die
Sys-temeinstellungen integriert. Einiges mehr kannman über Compiz
konfigurieren. Dazu muss manCompizConfig nachinstallieren. Für noch
mehrKonfigurierbarkeit sollte man auch dconf-toolsinstallieren.
Allerdings ist besonders letzteresProgramm eher für Experten.
Leicht zu benutzenist dagegen das neue MyUnity. Es erlaubt
aller-dings auch nur eine begrenzte Zahl von Einstel-lungen,
darunter die Auswahl von Themes. Wei-tere Eingriffsmöglichkeiten
bieten die Indikator-Applets [7].
Die drei größten Kritikpunkte an Unity, nebenden begrenzten
Einstellmöglichkeiten, dürftendie Scroll-Indikatoren anstelle der
Scrollbalken,die Anordnung der Fenster-Buttons links unddas globale
Menü sein. Für die Anordnung derFenster-Buttons ist kein guter
Grund ersichtlich,und wer sich nicht daran gewöhnen will, kann
$ gconftool -2 --set /apps/metacity/ygeneral/button_layout
--type stringy"menu:minimize,maximize,close"
eingeben, und der Spuk ist vorbei. Die norma-len Scrollbalken
lassen sich mit einer Compiz-Einstellung wieder herstellen, und wem
das von
den Anwendungen getrennte und in das Pa-nel verlegte
Anwendungsmenü nicht zusagt, derkann das Paket indicator-appmenu
entfernen– damit hört aber anscheinend auch das HUDauf zu
funktionieren. Bevor man also alles um-biegt, sei aber noch gesagt,
dass die Änderun-gen für kleine Bildschirme durchaus sinnvoll
sind.So sparen sie durchaus Platz, auf entsprechen-den Geräten
sollte man sie vielleicht besser bei-behalten.
Erweiterungen von Unity gibt es in geringemUmfang – zusätzliche
Linsen und Indikator-Applets sind teilweise aus externen
Repositorysverfügbar. Nicht vorgesehen ist dagegen eine
Das Software Center.
Sitzungsverwaltung, da dieEntwickler dafür keine Not-wendigkeit
sahen. DieseEntscheidung ist zumin-dest für Desktops und Lap-tops
einigermaßen fragwür-dig.
Das globale Menü, so-fern man es beibehält,funktioniert ebenso
mitKDE-Anwendungen. Auchdas HUD spielt mit KDE-Programmen
zusam-men, so dass sich KDE-Anwendungen sehr gutin Unity
integrieren undfast keinen Unterschiedzu
GNOME-Anwendungenaufweisen.
Der Desktop ist natürlich nicht Unity allein.Ubuntu hat nun
GNOME 3.4 integriert, undwer will, kann den originalen
GNOME-Desktopdurch die Installation der GNOME-Shell oder
desGNOME-Panels („klassisches“ GNOME) wiederherstellen. Das
GNOME-Mailprogramm Evolu-tion wurde allerdings durch Mozilla
Thunder-bird 12 ersetzt, der wie Firefox eine Integrationin den
Starter und das Menü aufweist.
Als Webbrowser ist jetzt Firefox 12 dabei.
DasStandard-Office-Paket ist LibreOffice 3.5.2.2.Installiert sind
auch Inkscape 0.48.3.1, GIMP2.6.12, Shotwell 0.12.2, Pitivi 0.15.0,
sowiedie GNOME-Anwendungen Empathy, Gwibber
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 7
http://wiki.ubuntuusers.de/Unity/FAQhttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_software_center.jpghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_software_center.jpghttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DISTRIBUTION
und Totem. Der Remote-Desktop-Client Vinagrewurde durch Remmina
1.0.0 ersetzt.
Das Software-Center, das Hauptwerkzeug zur In-stallation und
Verwaltung von Paketen, nicht je-doch zum Einspielen von Updates,
wurde wei-ter verbessert. Das Programm startet mit einemWerbebanner
(für Anwendungen aus dem Repo-sitory) sowie Listen von neuen und
bestbewer-teten Anwendungen. Gegenüber der Vorversiongibt es nun
die Möglichkeit, sich Empfehlungengeben zu lassen. Um diese zu
erhalten, mussdas Programm allerdings von Zeit zu Zeit eineListe
der installierten Anwendungen an Canoni-cal senden. Diese Option
muss daher von Handeingeschaltet werden.
Wenn man ein proprietäres Programm ein-kauft, kann man jetzt
auch mit Paypal zahlen.Man kann eigene Anwendungen in ein
Web-Verzeichnis hochladen und mit anderen gemein-sam nutzen. Die
Detailbeschreibung einer An-wendung kann nun mehrere Screenshots
oderVideos enthalten. Außerdem wird es leicht mög-lich sein,
mehrere Versionen eines Programmeszu installieren, da das
Ubuntu-Backports-Projektkünftig verstärkt neue Versionen von
Program-men bereitstellen soll. Hierzu ist das Reposito-ry
precise-backports standardmäßig aktiviert.Für die neueren Versionen
gibt es aber vonUbuntu keine Updates und keinen Support.
KDE (SC)In Kubuntu [8] wurde KDE SC auf die Ver-sion 4.8.2
aktualisiert. Diese Version soll unter
Desktop von Kubuntu.
anderem schneller und stabiler sein als Version4.7. So wurde die
Display-Engine des Datei-manager Dolphin unter diesem Aspekt
überar-beitet. Der Standard-Browser ist Rekonq, jetztin Version
0.9.1. Man braucht kein Prophet zusein, um Rekonq ähnlich wie
Konqueror völlige
Bedeutungslosigkeit zu bescheinigen, denn erbesitzt keine
Plug-ins und keine der fortgeschrit-tenen Funktionen von
Firefox.Als Musik-Player vorinstalliert ist Amarok 2.5,das jetzt an
den Amazon-MP3-Shop angebun-den ist. OwnCloud wurde erweitert und
bringt
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 8
http://www.kubuntu.org/http://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_kubuntu_desktop.jpghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_kubuntu_desktop.jpghttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DISTRIBUTION
Die Paketverwaltung Muon.
jetzt unter anderem einen Streaming-Musik-player mit.
knotify4, dem man in der letzten Versionnoch übermäßigen
Ressoucenverbrauch an-lasten musste, wurde offenbar korrigiert
undverhält sich jetzt unauffällig. Die Paketver-waltung Muon wurde
laut den Entwicklernschneller und robuster, und die zugehöri-ge
„Muon-Aktualisierungsverwaltung“ wurdeüberarbeitet. Leider findet
die vereinfachteOberfläche Muon-Programmverwaltung beiweitem nicht
alles, so die unten erwähn-ten Pakete kubuntu-low-fat-settings
undkde-window-manager-gles. Nur mit dem
Programm Muon-Paketverwaltungwird man fündig. Ganz schönviel
Verwirrung für ein Pro-gramm, das man mühelos durchSoftware-Center
hätte erset-zen können. Das Software-Center zieht zwar
zahlreicheGTK/GNOME-Bibliotheken nachsich und wurde deshalb von
denKubuntu-Entwicklern nicht aufge-nommen, aber diese Bibliothe-ken
benötigt man in der Regelsowieso irgendwann.
Damit sich GTK-Anwendungengut in KDE integrieren,
wurdeOxygen-GTK 3 installiert. DieStandard-Büroanwendung istauch
unter KDE LibreOffice, je-doch steht Calligra 2.4 in den
Repositorys zur Verfügung. Ebenfalls steht Tele-pathy für
Instant Messaging zur Verfügung, dasauf Wunsch das vorinstallierte
Kopete ersetzt.
Kubuntu hat an alle Benutzer gedacht, die dieLeistung ihres KDE
maximieren wollen und bie-tet ein Paket kubuntu-low-fat-settings
an, daseinige Dienste entfernt und somit Speicher spart.Außerdem
kann man mittels des experimentel-len Pakets
kde-window-manager-gles eine An-passung von KWin an OpenGL ES
ausprobieren.OpenGL ES stellt wie OpenGL
3-D-Hardwarebe-schleunigung für die Effekte von KWin bereit,
sollaber, da es sich um eine Untermenge handelt,kompatibler
sein.
Multimedia im Browser und auf demDesktopFirefox ist jetzt in
Version 12 enthalten. Mehre-re Plug-ins zum Abspielen von Videos in
freienFormaten sind vorinstalliert. Die vorinstallierte
Er-weiterung Ubuntu Firefox Modifications hat Ver-sion 2.0.2
erreicht. Darin ist der Plugin-Finder-Service enthalten, mit dem
sich komfortabel pas-sende Plug-ins finden und installieren lassen
soll-ten, wenn man beispielsweise ein Video in einerWebseite
abspielen will. Das funktionierte bei mirin keinem Fall, was aber
auch in der letzten Ver-sion schon so war.
So funktionieren ohne weiteres Zutun Videosbei einigen Anbietern
(z. B. tagesschau.de), beianderen nicht (heute.de). Flash ist
wiederumein anderes Thema. Standardmäßig ist keinFlash-Player
vorinstalliert, so dass sich keinFlash-Video abspielen lässt. Man
muss also vonHand ein Flash-Plug-in für Firefox installieren,dabei
hat man die Wahl zwischen dem frei-en Lightspark
(browser-plugin-lightspark) unddem Adobe Flash Player. Im Endeffekt
bleibt nurletzterer, da Lightspark nach wie vor bei vielenVideos
versagt. Die Alternative zu Flash, dasWebM-Format, sollte in
Firefox seit Version 4kaum Probleme bereiten und im Großen
undGanzen funktionieren.
Das gleiche Bild zeigt sich unter KDE, auch wenndort Rekonq
statt Firefox zum Einsatz kommt.
In den bekannten Anwendungen Rhythmbox,das jetzt wieder Banshee
in der Standardinstal-
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 9
http://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_muon.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/ubuntu1204_muon.pnghttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DISTRIBUTION
lation ersetzt hat, und Totem sollte bei standard-mäßig nicht
unterstützten Formaten eine Dialog-box erscheinen, die eine Suche
nach passen-den GStreamer-Plug-ins ermöglicht und sie in-stalliert.
Wenn Ubuntu mehr als ein Paket findet,das geeignet ist, kann man
auswählen, welchesinstalliert werden soll. Beim MP3-Format sinddas
beispielsweise ein Fluendo-Plug-in und
eineGStreamer-Plug-in-Sammlung. Es ist zu empfeh-len, das
Fluendo-Plug-in zu ignorieren, so dassdas FFmpeg-Plug-in
installiert wird.
Die Erkennung der benötigten Formate funktio-niert in manchen
Fällen, in manchen leider nicht.Es kann also unter Umständen nötig
sein, wei-tere GStreamer-Pakete von Hand zu
installieren,beispielsweise für das MPEG2-Format.
Unter KDE funktioniert das im Prinzip genau-so. Amarok ist der
Standard-Audioplayer. Ama-rok oder Dragonplayer erkennen fehlende
Plug-ins und starten die Paketverwaltung, um danachzu suchen. Es
kann jedoch passieren, dass beimersten Installationslauf nicht alle
benötigten Plug-ins installiert wurden – womöglich erkennen
dieProgramme immer nur eine fehlende Komponen-te nach der anderen.
In einem Fall waren sageund schreibe drei Startversuche nötig, bis
allePlug-ins vorhanden waren.
Im Dateimanager Dolphin fehlt weiterhin eine Da-teizuordnung von
Dateien mit dem Suffix .flv.Wenn man diese mit „Öffnen mit. . . “
hinzufügt,kann man z. B. Dragonplayer als Programm ein-tragen, dann
läuft alles rund. Insgesamt ist derTest zur Multimedia-Integration
knapp bestanden.
Optimal ist das alles nicht, aber immerhin besserals in der
Version 11.10.
FazitUbuntu hat es geschafft, mit dem Ende des Zwei-jahreszyklus
eine ausgereifte, stabile und in viel-facher Hinsicht attraktive
Distribution zu produzie-ren. Während ich die Ubuntu-Versionen, die
zwi-schen zwei LTS-Versionen liegen, mittlerweile alsreine
Betaversionen ansehe, gilt das für die LTS-Versionen nicht. Diese
sind stabil und ausgereift,wobei etwaige anfängliche Probleme
unvermeid-lich sind, aber nachträglich noch behoben wer-den. Und
mit Version 12.04 LTS steht zweifellosdie beste Ubuntu-Version
bisher zur Verfügung.Sicher hat es Mark Shuttleworth durchaus
ernstgemeint, als er die intensivierte Qualitätssiche-rung vor
kurzem hervorhob [9]. Allen Benutzern,von Einsteigern bis zu
erfahrenen Anwendernund Entwicklern, kann Ubuntu 12.04
empfohlenwerden. Normale Benutzer sollten immer bei ei-ner
LTS-Version bleiben, da diese die beste Sta-bilität bietet. Dabei
ist es bedarfsweise möglichund relativ einfach, veraltete
Software-Versionendurch neuere zu ersetzen.
Die Wahl des Desktop-Systems bleibt weiterhineine
Geschmacksfrage. Mit Unity hat Ubuntuzwar eine klare Präferenz
gesetzt, schließt aberAlternativen nicht aus. Die Entwicklung von
Uni-ty hatte kommerzielle Hintergründe, die durchausnachvollziehbar
sind, denn es geht schließlichum die Verbreitung von Ubuntu auf
verschiedens-ten Gerätetypen und somit um Einnahmequellenfür
Canonical. Das Ergebnis kann sich jetzt in je-
der Hinsicht sehen lassen, wird aber mit Sicher-heit nicht jeden
zufriedenstellen. Aber ob Uni-ty, KDE, GNOME, Xfce, LXDE oder eine
ande-re Oberfläche, ist letztlich jedem Benutzer selbstüberlassen.
Das System bleibt in jedem Fall das-selbe.
LINKS[1] http://www.pro-linux.de/artikel/2/1567/ubuntu-
und-kubuntu-1204-lts.html[2]
http://www.freiesmagazin.de/freiesMagazin-2010-
06[3] https://help.ubuntu.com/12.04/[4]
https://wiki.ubuntu.com/PrecisePangolin/
ReleaseNotes/UbuntuDesktop[5]
http://www.pro-linux.de/news/1/18238/canonical-
bringt-metal-as-a-service-maas.html[6]
http://www.pro-linux.de/news/1/17957/head-up-
display-revolutioniert-menues-in-ubuntu-1204.html
[7] http://wiki.ubuntuusers.de/Unity/FAQ[8]
http://www.kubuntu.org/[9]
http://www.pro-linux.de/news/1/18289/ubuntu-
1210-soll-quantal-quetzal-heissen.html
Autoreninformation
Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux
und isteiner der Betreiber von Pro-Linux.de.
Diesen Artikel kommentieren
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 10
http://www.pro-linux.de/news/1/18289/ubuntu-1210-soll-quantal-quetzal-heissen.htmlhttp://www.pro-linux.de/artikel/2/1567/ubuntu-und-kubuntu-1204-lts.htmlhttp://www.pro-linux.de/artikel/2/1567/ubuntu-und-kubuntu-1204-lts.htmlhttp://www.freiesmagazin.de/freiesMagazin-2010-06http://www.freiesmagazin.de/freiesMagazin-2010-06https://help.ubuntu.com/12.04/https://wiki.ubuntu.com/PrecisePangolin/ReleaseNotes/UbuntuDesktophttps://wiki.ubuntu.com/PrecisePangolin/ReleaseNotes/UbuntuDesktophttp://www.pro-linux.de/news/1/18238/canonical-bringt-metal-as-a-service-maas.htmlhttp://www.pro-linux.de/news/1/18238/canonical-bringt-metal-as-a-service-maas.htmlhttp://www.pro-linux.de/news/1/17957/head-up-display-revolutioniert-menues-in-ubuntu-1204.htmlhttp://www.pro-linux.de/news/1/17957/head-up-display-revolutioniert-menues-in-ubuntu-1204.htmlhttp://www.pro-linux.de/news/1/17957/head-up-display-revolutioniert-menues-in-ubuntu-1204.htmlhttp://wiki.ubuntuusers.de/Unity/FAQhttp://www.kubuntu.org/http://www.pro-linux.de/news/1/18289/ubuntu-1210-soll-quantal-quetzal-heissen.htmlhttp://www.pro-linux.de/news/1/18289/ubuntu-1210-soll-quantal-quetzal-heissen.htmlhttp://www.pro-linux.de/http://www.freiesmagazin.de/comment/reply/275?edit[subject]=Ubuntu
12.04#comment-formhttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
KERNEL
Der Mai im Kernelrückblick von Mathias Menzer
B asis aller Distributionen ist der Linux-Kernel, der
fortwährend weiterent-wickelt wird. Welche Geräte in einemhalben
Jahr unterstützt werden und welcheFunktionen neu hinzukommen,
erfährt man,wenn man den aktuellen Entwickler-Kernel imAuge
behält.
Entwicklung von Linux 3.4Zusammen mit der letzten Ausgabe
vonfreiesMagazin gab es die sechste Entwickler-version des Kernels
3.4 [1]. Diese Version hat-te durchweg Fehlerkorrekturen im
Programm,wenn man von Änderungen am Controller für
dieUSB-2.0-Schnittstelle des Tegra-Chipsatzes ausdem Hause NVIDIA
absieht. Hier wurde der Trei-ber für das Power Management so
angepasst,dass er den von anderen USB-Treiber bekann-ten
Spezifikationen entspricht. Somit könnenEntwickler künftig
Standard- anstelle von Treiber-spezifischen Methoden nutzen und
gleichzeitigbleibt der Treiber ohne größere Nacharbeit kom-patibel
zu den laufenden Änderungen an denUSB-Kernkomponenten.
Die Änderungen am -rc7 [2] waren wieder sehrüberschaubar. Die
herausstechendste Änderungwar die Rücknahme einer Behelfslösung für
einProblem zwischen dem i2c-Datenbus und demfreie Grafiktreiber
Nouveau. Sie war als Quel-le anderer Probleme erkannt worden und
konn-te wieder entfernt werden, da das ursprünglicheProblem
zwischenzeitlich auf Seiten i2c beho-
ben worden war. Dies blieb dann allerdings dieletzte
Entwicklerversion, denn anstelle eines -rc8gab Torvalds den Kernel
3.4 frei [3]. Er konntenoch die Korrektur eines Fehlers mit dem
Lin-ker [4], der beim Kompilieren und Linken von x86-spezifischen
Code auftritt, vorweisen.
Die Neuerungen von Linux 3.4Mit nur 63 Tagen Entwicklungsdauer
zählt Linux3.4 zu den am Kernel-Versionen, die ihren
Ent-wicklungszyklus im Schnelldurchlauf hinter sichgebracht haben.
Linux 3.0 kommt mit 64 Ta-gen dicht heran, doch der aktuellste
Kernel warschneller. Dies tut den enthaltenen Neuerungenjedoch
keinen Abbruch.
Btrfs wird derzeit noch nicht für den Einsatz inproduktiven
Umgebungen empfohlen, doch dieEntwicklung bewegt sich mit großen
Schritten ineben jene Richtung. Nicht die Sicherheit, son-dern die
Rettung von Daten aus einem zerstör-ten Dateisystem hat das neue
Werkzeug „btrfs-restore“ zum Ziel. Metadaten, also
Informationenrund um die eigentlichen zu speichernden Da-ten herum,
können nun in bis zu 64 KB großenBlöcken abgelegt werden, bislang
waren maxi-mal 4 KB möglich. Im Ergebnis soll hier weni-ger
Fragmentierung auftreten, was sich auch bes-ser auf die Leistung
auswirkt. Verbesserungen inder Fehlerbehandlung, Btrfs gibt dem
Nutzer nunaussagekräftige Fehlermeldungen aus und ver-setzt sich
selbst in einen Nur-Lesen-Modus, run-den das ganze ab.
Auf der Grafik-Seite braucht sich Linux 3.4 auchnicht zu
verstecken. Die neuen Kepler-Chips (Ge-Force 600 Serie) aus dem
Hause NVIDIA wer-den fast von Beginn an von dem freien
Treiber„Nouveau“ unterstützt, wenn auch noch ohne
die3-D-Beschleunigung. Auch mit Radeon 7xxx undden Grafikeinheiten
der Trinity-Prozessoren kannNouveau nun umgehen. Daneben wurde der
Trei-ber aus dem Staging-Bereich entlassen und wirdals tauglich für
den breiten Einsatz angesehen.Weiterhin wird nun auch die
Grafikkomponentevon Intels GMA500-Chipsatz unterstützt, wenndies im
Moment auch nur als experimentell anzu-sehen ist. GMA500 oder
„Medfield“ ist eine Platt-form, die für den Einsatz in Smartphones
vorge-sehen ist.
Ein kleines Highlight stellt die neue x32-ABI dar.Dies ist eine
Schnittstelle für die Ausführung von32-Bit-Anwendungen in einer
64-Bit-Umgebung.Zwar existieren hierfür mit x86_64 und i386
be-reits passende Schnittstellen, jedoch versprichtx32 eine bessere
Leistung, dafür jedoch müssenProgramme speziell für die Verwendung
mit x32kompiliert werden.
Bei Gerätetreibern wird dies schon länger so ge-handhabt, nun
kommt „Autoprobing“, die automa-tische Erkennung bestimmter
Voraussetzungenfür einen Treiber, auch für Module zum Einsatz,die
die verschiedenen Erweiterungen des Pro-zessors betreffen. Dies
soll dafür sorgen, dasskünftig auch wirklich alle Module verfügbar
und
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 11
https://lwn.net/Articles/496079/https://lkml.org/lkml/2012/5/12/60https://lkml.org/lkml/2012/5/20/126https://de.wikipedia.org/wiki/Linker_%28Computerprogramm%29http://creativecommons.org/licenses/by-sa/3.0/deed.de
-
KERNEL
geladen sind, die für die Nutzung der vorhande-nen
CPU-Erweiterungen benötigt werden.
In den Bereich der Sicherheit läuft das neue Si-cherheitsmodul
„Yama“. Es ermöglicht bestimm-te Beschränkungen, die der Kernel mit
seinenKernkomponenten nicht umsetzen kann. Derzeitbetrifft dies
Funktionen rund um den Systemauf-ruf ptrace – Yama verhindert hier,
dass Prozes-se auf den Speicherbereich und Statusinforma-tionen
anderer Prozesse zugreifen können.
Wer einen Blick darauf werfen möchte, wie sichÄnderungen am
Kernel oder Eigenentwicklungenauf die Systemleistung auswirken, dem
steht derLeistungsmesser „perf“ zur Verfügung. Die Aus-wertung
dessen Ausgaben wird nun etwas einfa-cher, da Reports nun mittels
einer auf GTK2 ba-sierenden Bedienoberfläche betrachtet
werdenkönnen. Die Oberfläche ist allerdings noch aus-baufähig.
Mancher mag nicht sicher sein, ob „dm-verity“ tat-sächlich im
Interesse der Linux-Anwender liegt.Diese Erweiterung für den Device
Mapper [5] er-möglicht gesicherte, nicht beschreibbare
Datei-systeme, deren Inhalt mittels kryptografischerPrüfsummen
verifiziert wird. So wird bei jedemLesezugriff sichergestellt, dass
die Informationauch die ist, die irgendwann einmal hineinge-legt
wurde. Dies ließe sich zum Beispiel zur Ab-sicherung von
Unterhaltungshardware insofern
nutzen, dass nur überprüfte Firmware genutztwird, wie dies zum
Beispiel ChromeOS bereitsvormacht. Als kleine Anekdote hierzu: Ein
Mit-arbeiter des Online-TV-Dienstes Netflix [6] batum die Aufnahme
der Erweiterung in den Kernelmit dem Hinweis auf
Unterhaltungsgeräte, die mitLinux betrieben werden [7].
Diese Liste ist bei weitem nicht komplett. Einesehr
ausführliche, jedoch in Englisch verfassteSeite über alle neuen
Funktionen und Treiber bie-tet KernelNewbies.org [8].
Das Merge Window für Linux 3.5 war zu Re-daktionsschluss noch
offen. Insofern muss esnoch nichts bedeuten, dass bislang kaum
Än-derungen für das Dateisystem Btrfs in die Ent-wicklerversion des
Kernels aufgenommen wur-den. Anders dagegen sieht es bei den
Netzwerk-Dateisystemen NFS und CIFS aus – hier fin-det sich bereits
eine Vielzahl an Korrekturenin der Liste der eingegangenen Patches.
Auchder Nouveau-Treiber weist bislang
hauptsächlichFehlerkorrekturen auf. Eine theoretisch kleine-re
Umstellung der Schnittstelle eines Treibersfür die Fehlerkontrolle
von Arbeitsspeichermodu-len (EDAC) dürfte ein wenig Staub
aufwirbeln.Hier müssen in nächster Zeit viele Treiber an-gepasst
werden, die auf diese Komponente auf-bauen, was eine Vielzahl an zu
ändernden Da-teien im Kernel-Tree bedeutet. Konkret wurdenbislang
die Treiber für Intels i3/i5/i7- sowie ei-
nige Xeon-Plattformen angepasst. VerschiedeneAMD-bezogene
Treiber und auch andere Herstel-ler und Architekturen werden noch
im Kernel 3.5folgen.
Einen ersten Überblick über die tatsächlich zuerwartenden
Neuerung des kommenden Linux-Kernels wird es jedoch frühestens in
der Juli-Ausgabe von freiesMagazin geben.
LINKS[1] https://lwn.net/Articles/496079/[2]
https://lkml.org/lkml/2012/5/12/60[3]
https://lkml.org/lkml/2012/5/20/126[4]
https://de.wikipedia.org/wiki/Linker_(Computer
programm)[5] https://de.wikipedia.org/wiki/Device_Mapper[6]
https://de.wikipedia.org/wiki/Netflix[7]
https://lwn.net/Articles/459422/[8]
http://kernelnewbies.org/Linux_3.4
Autoreninformation
Mathias Menzer (Webseite) hälteinen Blick auf die Entwicklung
desLinux-Kernels und erfährt frühzeitigDetails über interessante
Funktionen.
Diesen Artikel kommentieren
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 12
https://de.wikipedia.org/wiki/Device_Mapperhttps://de.wikipedia.org/wiki/Netflixhttps://lwn.net/Articles/459422/http://kernelnewbies.org/Linux_3.4https://lwn.net/Articles/496079/https://lkml.org/lkml/2012/5/12/60https://lkml.org/lkml/2012/5/20/126https://de.wikipedia.org/wiki/Linker_%28Computerprogramm%29https://de.wikipedia.org/wiki/Linker_%28Computerprogramm%29https://de.wikipedia.org/wiki/Device_Mapperhttps://de.wikipedia.org/wiki/Netflixhttps://lwn.net/Articles/459422/http://kernelnewbies.org/Linux_3.4http://www.menzer.net/http://www.freiesmagazin.de/comment/reply/275?edit[subject]=Der
Mai im
Kernelr%C3%BCckblick#comment-formhttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
PROGRAMMIERUNG
Objektorientierte Programmierung: Teil 4 – Strategie, wechsel
Dich! von Dominik Wagenführ
D er Begriff der objektorientierten Pro-grammierung (kurz OOP
[1]) existiertschon eine ganze Weile. Wer zuvorprozedural
programmiert hat, erwischt sichbeim Übergang zu OOP öfters dabei,
wie erdie früheren Funktionen einfach mit einerKlasse umgibt und
dies als objektorientierteProgrammierung verkauft. Diese
Artikelreihesoll an einem einfachen Beispiel zeigen, wasman in
diesem Fall besser machen könnte.
Bevor man im Artikel fortfährt, sollte man sichden vorherigen
Teil der Reihe durchgelesen ha-ben (siehe freiesMagazin 05/2012
[2]).
Eine neue StrategieVon den drei bisher verwendeten Strategien
wareine dabei, deren Verhalten sehr ähnlich zu denanderen beiden
war. Zur Erinnerung die drei Bot-Strategien:
1. Immer annehmen2. Immer ablehnen3. Annahme, wenn größer gleich
200. Wenn drei-
mal nacheinander kleiner 200, dann immerAblehnung; wenn dreimal
nacheinander grö-ßer als 700, dann immer Annahme.
Bei der dritten Strategie ist es also so, dass manab einem
gewissen Punkt zu Strategie 1 oder 2wechselt. Es wäre gut, wenn
diese Strategie al-so dem Bot eine neue Strategie unterschiebt,
an-statt Strategie 1 und 2 intern nachzubilden.
Hierfür gibt es natürlich auch ein Entwurfsmus-ter, welches sich
Zustandsmuster nennt [3]. DasZustandsmuster besteht aus Zuständen
(im Bei-spiel also den Strategien) und aus Zustandsüber-gängen,
welche einen Zustand in einen anderenüberführen.
Hinweis: Das Beispiel ist natürlich extrem verein-facht. Man
stelle sich aber vor, Strategie 1 und2 müssten komplizierte
Berechnungen durchfüh-ren. Diese eins zu eins in Strategie 3
nachzubil-den, wäre wegen Code-Redundanz unsinnig.
DesignDie essentiellen Fragen für das Design sind:
1. Wie kommen die konkreten Strategien an dieanderen konkreten
Strategien, zu denen siewechseln sollen?
2. Wie können sie dem Bot diese neue Strategiegeschickt
unterschieben?
Frage 1 ist leicht zu beantworten: Sie nutzen ein-fach die
StrategyFactory, um die neue konkre-te Strategie zu erstellen.
Dafür müssen sie abernatürlich auch wissen, zu welcher Strategie
siewechseln wollen.
Hinweis: Es gibt hier auch andere Ansätze, dassz.B. der Kontext
(im Beispiel die Klasse Bot) alleStrategien einmal als Instanz hält
und diese her-ausgeben kann, sodass ein Wechsel möglich ist.
Frage 2 ist etwas schwieriger zu beantwor-ten. Bisher war es so,
dass im Paketdiagramm
libbot immer libstrategy nutzt. Würde mannun von den konkreten
Strategien direkt auf Botzugreifen, hätte man auch eine
Abhängigkeit vonlibstrategy zu libbot und damit eine zykli-sche
Paketabhängigkeit geschaffen, was in denseltensten Fällen gut
endet.
Um dieses Problem zu lösen, hilft das Dependen-cy Inversion
Principle [4]. Hier könnte man ein In-terface IBot unter die Klasse
Bot legen, welchesdie Strategien nutzen könnte. Natürlich ist die
Ab-hängigkeit immer noch zyklisch, wenn IBot imPaket libbot liegt.
Man könnte das Interface al-so in libstrategy auslagern, aber das
passtkontextuell nicht mehr in das Strategie-Paket. Eineinzelnes
Paket mit dem Interface ist aber eben-so übertrieben.
Was ist also die Lösung? Ganz simpel: Eine Na-mensänderung.
Wieso heißt das Interface IBot?Es soll eigentlich nur eine
Schnittstelle anbieten,damit Strategien den umliegenden Kontext
verän-dern können. Vor allem ist nicht gesagt, dass inferner
Zukunft niemand die Strategien auch an-ders als für einen Bot
einsetzen will.
Aus dem Grund ist die Integration des Interfa-ces in das Paket
libstrategy korrekt, der Namesollte aber IStrategyContext lauten
und dieKlasse sollte nur eine Operation setStrategybesitzen.
Dennoch fehlt etwas: Die konkreten Strate-gien müssen auch an
den Kontext kommen,
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 13
https://de.wikipedia.org/wiki/Objektorientierte_Programmierunghttp://www.freiesmagazin.de/freiesMagazin-2012-05https://de.wikipedia.org/wiki/Zustand_%28Entwurfsmuster%29https://de.wikipedia.org/wiki/Dependency_Inversion_Principlehttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
PROGRAMMIERUNG
Das Interface IStrategyContext und deren Nutzer.
also an den Nutzer der jeweiligen Strategie. Diesgeschieht am
besten, indem die Basisklasseunter den Strategien den Kontext
IStrategyContext verwaltet und bei Bedarf an die
Generalisierungen gibt. Dies ist dann auch derGrund, wieso das
Interface IStrategy der Basis-klasse BaseStrategy weichen muss.
Jetzt fehltnur noch die Beschreibung der Zustände. Diese
entsprechen im vorliegenden Fall den drei kon-kreten Strategien.
Als Zustandsübergang funktio-niert die Methode acceptOffer, wobei
der jewei-lige Übergang aus dem Zustand variable her-aus an eine
Bedingung geknüpft ist:
� Liegt der übergebene Wert zwischen 200 und700 (inklusive),
bleibt man in dem Zustand undsetzt die Zählwerte mNumDeclineInRow
undmNumAcceptInRow zurück.
� Ist der Wert kleiner als 200 und hat man schondreimal
abgelehnt, geht man in den Zustanddecline über.
� Ist der Wert größer als 700 und hat man schondreimal
angenommen, geht man in den Zu-stand accept über.
Die Zustände accept und decline können dannnur noch durch das
Spielende verlassen werden.
Achtung: Der Zustandsautomat hat eine kleineUnschärfe und ist
der Einfachheit halber nicht ein-hunderprozentig korrekt
dargestellt. So fehlt näm-lich die eigentliche Aktion des Zählens,
wie oftein Angebot abgelehnt oder angenommen wur-de. Wenn man es
sehr genau nehmen würde,dann müsste man hierfür Zwischenzustände
ein-bauen, deren einzige Aufgabe es wäre, die jewei-lige Anzahl an
Ablehnungen bzw. Annahmen zuzählen. Sie wechseln nach dem Zählen
ohne Zu-standsübergang direkt in den nächsten Zustand,der eben von
der Anzahl abhängt.
KlassenaufteilungKlasse: IStrategyContexBenötigt: –
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 14
http://www.freiesmagazin.de/mobil/2012-06-bilder/oop7-design.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/oop7-design.pnghttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
PROGRAMMIERUNG
Verantwort.: Interface für Nutzer von Strategi-en, um neue
Strategien zu setzen
Klasse: BaseStrategyBenötigt: IStrategyContextVerantwort.:
Basisklasse für die konkreten
Strategien, um ein Angebot anzu-nehmen oder abzulehnen.Merkt
sich den Kontext, in dem esbenutzt wird.
Hinweis: Hier muss man aufpassen, dass esnicht zu einer
zyklischen Abhängigkeit kommt.Da IStrategyContex aber nur ein
Interface ist,muss es nicht BaseStrategy selbst, sondern nurden
Namen kennen.
Klasse: AcceptStrategyBasisklasse: BaseStrategyBenötigt:
–Verantwort.: nimmt ein Angebot immer an
Klasse: DeclineStrategyBasisklasse: BaseStrategyBenötigt:
–Verantwort.: lehnt ein Angebot immer ab
Klasse: VariableStrategyBasisklasse: BaseStrategyBenötigt:
StrategyFactory,
IStrategyContexVerantwort.: entscheidet variabel, ob ein
Ange-
bot abgelehnt oder angenommenwird
Klasse: StrategyFactoryBenötigt: BaseStrategyVerantwort.: lässt
neue Strategien anmelden
und erstellt diese auf Zuruf
Klasse: BotBasisklasse: IStrategyContexBenötigt:
BaseStrategyVerantwort.: zählt die angenommenen Punkte
Klasse: GameBenötigt: StrategyFactory, BotVerantwort.: erstellt
den Bot und setzt die von
der Fabrik erzeugte Strategie;liest die Benutzereingabe undfragt
Bot nach Annahme oder Ab-lehnung
AbhängigkeitenEs gibt nun zwar mehr Abhängigkeiten, aber
eshandelt sich dabei immer nur um zusätzlicheAbhängigkeiten zu
einem Interface, welche sehrleichtgewichtig sind.
Ebenso sind durch die Ersetzung von IStrategydurch die
Basisklasse BaseStrategy keine neu-en Abhängigkeiten
entstanden.
Vor- und NachteileNachteile ergeben sich keine aus der
Lösung.Der Vorteil ist, dass die Strategien nun ineinaderwechseln
können und diese vor allem bei kom-plexeren Strategien wieder
verwendbar sind.
ImplementierungDie potentielle zyklische Abhängigkeit
vonIStrategyContext zu BaseStrategy lässt sichleicht durch
Vorwärtsdeklarationen lösen. Mankann in C++ sogar noch einen
Schritt weiterge-hen und in BaseStrategy mit einer
Vorwärts-deklaration auf IStrategyContext auskommen.Der Grund ist,
dass BaseStrategy das Interfacenie selbst nutzt, sondern nur
verwaltet. Und da-für muss es nur den Namen kennen, nicht
deneigentlichen Code, der dahintersteckt.
Die C++-Implementierung der obigen Klassenkann als Archiv
heruntergeladen werden: oop7-beispiel.tar.gz.
AbschlussDie vier Teile zur objektorientierten Programmie-rung
sollten einen kleinen Einblick geben, wieman aus einem einfachen
Problem etwas desi-gntechnisch extrem kompliziertes machen
kann.Natürlich nicht, damit es niemand mehr versteht,sondern damit
die Lösung auch für die Zukunftleicht erweiterbar und wartbar ist.
Und in der Re-gel hilft ein gutes Design dem Verständnis.
Wie im ersten Teil erwähnt, gibt es zu einer Auf-gabe aber immer
mehrere Lösungen. Und sogibt es für das gestellte Problem natürlich
auchmehrere Designentscheidungen in die eine oderandere Richtung.
Vorrangig sollten in der Rei-he aber verschiedene Design-Prinzipien
und Ent-wurfsmuster vorgestellt werden.
Man sollte sich auch im Klaren darübersein, dass eine sture
Entwicklung nach dem
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 15
http://www.freiesmagazin.de/mobil/2012-06-listings/oop7-beispiel.tar.gzhttp://www.freiesmagazin.de/mobil/2012-06-listings/oop7-beispiel.tar.gzhttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
PROGRAMMIERUNG
Zustandsautomat mit der variablen Strategie als
Start-Strategie.
Motto „Erst das Design, dann die Implementie-rung” selten
funktioniert. In der Regel erkenntman während der Implementierung,
dass manim Design etwas falsch gemacht hat, etwas fehltoder einfach
gar nicht in der benutzten Sprachezu realisieren ist. Daher sollte
das Design zwarzuerst entstehen, während der Umsetzung aberiterativ
angepasst werden.
Literatur
� E. Gamma, R. Helm, R. Johnson und J. Vlis-sides: „Design
Patterns. Elements of Reusable
Object-Oriented Software“, Addison-Wesley1994, ISBN
978-0201633610 [5]
� E. Gamma, R. Helm, R. Johnson undJ. Vlissides:
„Entwurfsmuster: Elementewiederverwendbarer objektorientierter
Soft-ware“, Addison-Wesley 2004, ISBN 978-3827321992 [6]
� E. & E. Freeman, B. Bates und K. Sierra:„Head First Design
Patterns“, O’Reilly Media2004, ISBN 978-0596007126 [7]
� R. C. Martin: „Clean Code - Refactoring,Patterns, Testen und
Techniken für saube-
ren Code“, mitp-Verlag 2009, ISBN 978-3826655487 [8]
LINKS[1] https://de.wikipedia.org/wiki/Objektorientierte_
Programmierung[2]
http://www.freiesmagazin.de/freiesMagazin-2012-
05[3] https://de.wikipedia.org/wiki/Zustand_(Entwurfs
muster)[4] https://de.wikipedia.org/wiki/Dependency_
Inversion_Principle[5]
http://www.amazon.de/Patterns-Elements-
Reusable-Object-Oriented-Software/dp/0201633612/
[6]
http://www.amazon.de/Entwurfsmuster-Elemente-wiederverwendbarer-objektorientierter-Software/dp/3827321999/
[7]
http://www.amazon.de/Head-First-Design-Patterns-Freeman/dp/0596007124/
[8]
http://www.amazon.de/Clean-Code-Refactoring-Patterns-Techniken/dp/3826655486/
Autoreninformation
Dominik Wagenführ (Webseite) istC++-Software-Entwickler und
hattäglich mit Software-Design zu tun.Dabei muss er sich immer
Gedankenmachen, dass seine Software auchin Zukunft wart- und
erweiterbar bleibt.
Diesen Artikel kommentieren
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 16
http://www.freiesmagazin.de/mobil/2012-06-bilder/oop7-design-states.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/oop7-design-states.pnghttp://www.amazon.de/Patterns-Elements-Reusable-Object-Oriented-Software/dp/0201633612/http://www.amazon.de/Entwurfsmuster-Elemente-wiederverwendbarer-objektorientierter-Software/dp/3827321999/http://www.amazon.de/Head-First-Design-Patterns-Freeman/dp/0596007124/http://www.amazon.de/Clean-Code-Refactoring-Patterns-Techniken/dp/3826655486/https://de.wikipedia.org/wiki/Objektorientierte_Programmierunghttps://de.wikipedia.org/wiki/Objektorientierte_Programmierunghttp://www.freiesmagazin.de/freiesMagazin-2012-05http://www.freiesmagazin.de/freiesMagazin-2012-05https://de.wikipedia.org/wiki/Zustand_%28Entwurfsmuster%29https://de.wikipedia.org/wiki/Zustand_%28Entwurfsmuster%29https://de.wikipedia.org/wiki/Dependency_Inversion_Principlehttps://de.wikipedia.org/wiki/Dependency_Inversion_Principlehttp://www.amazon.de/Patterns-Elements-Reusable-Object-Oriented-Software/dp/0201633612/http://www.amazon.de/Patterns-Elements-Reusable-Object-Oriented-Software/dp/0201633612/http://www.amazon.de/Patterns-Elements-Reusable-Object-Oriented-Software/dp/0201633612/http://www.amazon.de/Entwurfsmuster-Elemente-wiederverwendbarer-objektorientierter-Software/dp/3827321999/http://www.amazon.de/Entwurfsmuster-Elemente-wiederverwendbarer-objektorientierter-Software/dp/3827321999/http://www.amazon.de/Entwurfsmuster-Elemente-wiederverwendbarer-objektorientierter-Software/dp/3827321999/http://www.amazon.de/Head-First-Design-Patterns-Freeman/dp/0596007124/http://www.amazon.de/Head-First-Design-Patterns-Freeman/dp/0596007124/http://www.amazon.de/Clean-Code-Refactoring-Patterns-Techniken/dp/3826655486/http://www.amazon.de/Clean-Code-Refactoring-Patterns-Techniken/dp/3826655486/http://www.deesaster.org/blog/http://www.freiesmagazin.de/comment/reply/275?edit[subject]=Objektorientierte
Programmierung: Teil
4#comment-formhttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DATENSICHERUNG
Cloud-Backup mit Bordmitteln von Hauke Goos-Habermann
N iemand will „Backup“, alle wollen nur„Restore“. Natürlich
kommt man alsNutzer nicht um das Thema „Backup“herum, will man
seine Daten nicht unnötigaufs Spiel setzen. Neben den
klassischenMöglichkeiten, Daten lokal – auf externenFestplatten
oder einem Netzwerkspeicher –zu sichern, könnte man auf die Idee
kommen,eine Sicherung in das Internet vorzunehmen.Sogenannte
„Cloud-Backup“-Lösungen gibtes viele, doch möchte man seine
persönli-chen Daten vielleicht nicht unbedingt einemDienstleister
anvertrauen, von dem man nichtgenau weiß, was dieser mit den Daten
anstellt.Außerdem sollte man eine solche Lösung kei-nesfalls als
Ersatz für normale Backups, son-dern als Ergänzung sehen.
Möchte man dennoch dieses Wagnis auf sichnehmen, so sollte man
von einer solchen LösungFolgendes erwarten:
� Die Daten sollten lokal verschlüsselt werden,damit keine
sensiblen Informationen nach au-ßen gelangen.
� Dateien sollten versioniert werden, um ein „Zu-rückspringen“
zu bestimmten vorherigen Zu-ständen zu ermöglichen.
� Die Backups sollten platzsparend gesichertwerden.
� Das Hochladen der Backups sollte band-breitenschonend
erfolgen, denn Internet-
Anschlüsse mit guten Upload-Raten sind im-mer noch
Mangelware.
Dieser Artikel beschreibt eine Lösung, die alleoben genannten
Punkte abdeckt und zudem mitden Werkzeugen von halbwegs modernen
Distri-butionen zu realisieren ist.
VorbereitungenFür die „Cloud-Backup“-Lösung „Marke Eigen-bau“
benötigt man auf dem eigenen Rech-ner die Pakete encfs, bup, git
und rsync.Der Rechner im Internet benötigt das Paketrsync neben der
Möglichkeit, sich dort ein-zuloggen und Dateien beziehungsweise
Ver-zeichnisse abzulegen. Die Pakete können
Entschlüsseltes und verschlüsseltes EncFS-Verzeichnis.
mit der jeweiligen Paketverwaltung eingespieltwerden.
EncFSDen Part des Verschlüsslers spielt die FUSE-Erweiterung
EncFS [1]. EncFS wird als normalerBenutzer, nicht als Root,
verwendet und benötigtlediglich zwei Verzeichnisse. Das eine
enthält dieverschlüsselten Daten, das andere die transpa-rent
entschlüsselten. Die Dateien und Verzeich-nisse im entschlüsselten
Verzeichnis sind reinvirtuell und werden also nicht auf die
Festplattegeschrieben. Änderungen, die im entschlüssel-ten
Verzeichnis durchgeführt werden, werdenautomatisch als
verschlüsselte Gegenstückeim anderen Verzeichnis abgebildet. Neben
den
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 17
http://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_encfs.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_encfs.pnghttp://www.arg0.net/encfshttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DATENSICHERUNG
Dateiinhalten werden auch die Datei- und Ver-zeichnisnamen
verschlüsselt, sodass es füreinen Unbefugten, der Zugriff auf das
verschlüs-selte Verzeichnis erhält, nur sehr schwer
ist,Rückschlüsse auf den tatsächlichen Inhalt zu zie-hen.
Zum Anlegen der beiden Verzeichnisse undgrundlegenden
Konfiguration von EncFS reichtfolgender Einzeiler, der im
Verzeichnis des ak-tuellen Benutzers das Verzeichnis v für die
ver-schlüsselten Daten und e für die entschlüsseltenanlegt:
$ encfs ~/v ~/e
Bei der Frage „Bitte wählen Sie eine der folgen-den Optionen“
kann man einfach p für den vor-konfigurierten Paranoia-Modus wählen
und da-nach einen möglichst komplizierten Passsatz an-geben.
Anschließend befindet sich unter v dieKonfigurationsdatei
.encfs*.xml mit Einstellun-gen zum angelegten EncFS.
Ein späteres Mounten erfolgt über dasselbe Kom-mando. Möchte man
das EncFS wieder aushän-gen, so macht man dies mit:
$ fusermount -u ~/e
bupDie Software bup [2] löst gleich zwei Proble-me. Zum einen
archiviert bup alle übergebe-nen Daten und ermöglicht deren
Wiederherstel-lung. Zum anderen werden bei jedem Speicher-vorgang
nur die Änderungen zu bereits in bup
gesicherten Daten auf der Festplatte abgelegt.Aus Anwendersicht
kann man sich bup als Da-tenbank vorstellen, die Daten besonders
effizientspeichert. Gerade diese Effizienz ist wichtig, da-mit nur
ein Minimum an Daten an den Rechnerim Internet übertragen werden
muss.
Intern verwendet bup Strukturen des Versions-verwaltungssystems
git (z. B. das git packfileformat) und bietet ein wahres Füllhorn
an Funk-tionen [3]: Den Zugriff auf den Datenbestand viaWebbrowser
oder als FUSE-Modul, die Möglich-keit, mit git-Programmen auf die
bup-Daten zu-zugreifen und die Sicherung der Datenintegritätmittels
PAR2 [4].
bup-Repository erstellenBevor man mit bup arbeiten kann, muss
man einbup-Repository erstellen. bup legt hierbei stan-dardmäßig
seine Daten unter ~/.bup, also imjeweiligen Heimatverzeichnis des
aktiven Benut-zers, ab. Möchte man den Pfad ändern, so ge-schieht
dies über den Parameter -d . Alsersten Test kann man mittels des
folgenden Be-fehls ein temporäres bup-Archiv (für den
Produk-tivbetrieb muss natürlich ein anderes Verzeichnisgewählt
werden) anlegen:
$ bup -d /tmp/b init
Daten an bup sendenBup sieht zwei verschiedene Arten vor, wie
Da-ten zum Speichern eingereicht werden können.Über das Kommando
split können beliebigeDatenströme (z. B. die Ausgabe von tar
oderdd) in bup umgeleitet werden. Um beispielsweise
das eigene Heimatverzeichnis in bup zu sichern,könnte man
folgenden Einzeiler verwenden:
$ tar cv ~ | bup -d /tmp/b split -ny"tar-Test"
Diese Methode hat den Vorteil, dass auch Zu-griffsrechte sowie
Benutzer- und Gruppenzuge-hörigkeiten gesichert werden, hat aber
auch denNachteil, dass man nicht gezielt auf einzelne Da-teien der
Sicherung zurückgreifen kann. Mit -nwird hierbei der Name des
Backup-Satzes ange-geben. Für regelmäßige Backups (und der Ord-nung
wegen) empfielt es sich, für verschiedeneAufgaben eigene
Backup-Sätze zu verwenden(z. B. konfig für /etc oder meins für ~).
Für dieEffizienz von bup ist es allerdings unerheblich,wieviele
Backups ein Backup-Satz enthält, da im-mer nur Differenzen zu allen
zuvor in bup gesi-cherten Daten gespeichert werden.
Möchte man auf einzelne Dateien in bup überFUSE [5], den
integrierten Webserver oder dasKommandozeilenwerkzeug zugreifen
können, sogeschieht die Sicherung über:
$ bup -d /tmp/b index ~$ bup -d /tmp/b save -n "datei-Testy"
~
Die erste Zeile legt eine Liste aller zu sicherndenDateien und
Verzeichnisse an, die zweite sichertdiese anschließend in der
bup-Datenbank. DieseVariante hat aber (derzeit) den Nachteil, dass
kei-ne Dateirechte gesichert werden.
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 18
https://github.com/apenwarr/buphttp://zoranzaric.de/bup-cda.pdfhttp://de.wikipedia.org/wiki/PAR2http://fuse.sourceforge.nethttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DATENSICHERUNG
Daten aus bup herausbekommenDas Ablegen von Daten in bup ist
relativ einfach.Doch wie kommt man an die Daten wieder her-an?
Da bup intern die git-Struktur verwendet, bei derjedes Backup
über eine eindeutige „CommitID“auffindbar ist, wird für das
Wiederherstellen ei-nes Datenstromes ebendiese Nummer benötigt.Zum
Auflisten dieser Nummern für das obenangelegte tar-Backup dient das
git-Programmselbst:
$ GIT_DIR="/tmp/b" git log "tar-yTest"
Das git-Protokoll mit erfolgten Sicherungen.
Jede Sicherung wird im git-Protokoll mit Com-mitID, dem
Ersteller des Backups sowie dem Zeit-punkt der Sicherung vermerkt.
Zum Auslesendient das Kommando join, dem die CommitIDübergebenen
wird:
$ bup -d /tmp/b join c9242bd6bb9cfd9c285f01ebb0dcdacf0c620038 |
tar xv
Auf einzelne Dateien in bup kann man mittels desKommandos fuse
via beliebiger Dateimanagerlesend zugreifen:
$ mkdir /tmp/mountpunkt$ bup -d /tmp/b fuse /tmp/mountpunkt
Möchte man dem FUSE-Modul beim Arbeiten zu-sehen, so erweitert
man den Aufruf nach fusenoch um -f. Anschließend kann man im
Datei-manager /tmp/mountpunkt als Adresse ange-ben und Dateien aus
dem Archiv heraus kopie-ren.
Um den Zugriff über FUSE zu beenden und bupaus dem Verzeichnis
auszuhängen, genügt:
$ fusermount -u /tmp/mountpunkt
Der Zugriff über den Webbrowser geschieht ähn-lich:
$ bup -d /tmp/b web
Der bup-Webserver lauscht nun an Port8080 und nimmt Verbindungen
entgegen.Im Browser gibt man in der
Adresszeilehttp://127.0.0.1:8080 an und kann dannDateien aus bup
herunterladen. Den Server be-endet man nach getaner Arbeit über die
Tasten-kombination Strg + C .
Von der Kommandozeile kann man natürlichauch seine Backups
wiederherstellen. Hierzudient das bup-Kommando restore. Dieses
benötigt zusätzlich zum Namen des Backup-Satzes auch noch das
Datum der Siche-rung. Möchte man die letzte Sicherung
wiederherstellen, so lautet das Datumlatest.
Zum Auflisten aller Sicherungszeitpunktedes Backup-Satzes
datei-Test dient:
$ bup -d /tmp/b ls datei-Test | ysort -r
Der folgende Einzeiler stellt schließlich alle Datei-en und
Verzeichnisse aus datei-Test vom Da-tum 2012-04-23-171250 im
aktuellen Verzeich-nis wieder her:
$ bup -d /tmp/b restore "/datei-yTest/2012-04-23-171250/"
bup-Archiv via FUSE gemountet.
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 19
http://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_gitlslog.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_gitlslog.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_konqueror-fuse.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/cloud_konqueror-fuse.pnghttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DATENSICHERUNG
Und jetzt alle zusammenBis auf rsync, das den Transfer der Daten
vomeigenen Rechner zum Server im Internet über-nimmt, wurden alle
Komponenten vorgestellt.Jetzt kommt es nur noch auf das
Zusammenspielan. In der Theorie soll das bup-Repository inEncFS
abgelegt und dieses verschlüsselte bup-Archiv wiederum hochgeladen
werden.
Um die Sache zu vereinfachen, habe ich dasSkript encfsBupBackup
(Download unter [6]) ge-schrieben, das diese einzelnen Schritte
zusam-menfasst und für den Benutzer vereinfacht. Da-mit das Skript
einfach genutzt werden kann,sollte man es in ein Verzeichnis, das
im Pfadfür ausführbare Dateien (z. B. /usr/local/bin)aufgelistet
ist, ablegen und mittels chmod +xencfsBupBackup ausführbar
machen.
Beim ersten Aufruf von encfsBupBackupwird eine Vorlage für die
Konfigurationsdatei~/encfsBupBackup.rc angelegt, die man dannmit
einem Editor anpassen muss. Neben denVerzeichnissen für EncFS und
das bup-Archivsind das EncFS-Password für das automati-sche
Mounten, sowie die Zugangsdaten für denInternet-Server
anzugeben.
Daten sichernDas Anlegen von EncFS und bup-Repositoryübernimmt
encfsBupBackup, sodass man gleichmit dem Sichern von Daten beginnen
kann:
$ tar cv ~ | encfsBupBackup pipeIn y"tar-Test2"
Oder auf Dateiebene:
$ encfsBupBackup filesIn "datei-yTest2" ~
Das Einhängen vor dem Sichern und anschlie-ßende Aushängen
übernimmt wiederum dasSkript.
Status abfragenZur weiteren Vereinfachung enthält
encfsBup-Backup Funktionen, um den Status des bup-Archives
abzufragen.
Neben den Protokollen, die git/bup mitbringen,legt
encfsBupBackup ein Eigenes an, das die Na-men der Backup-Sätze und
die CommitID einerjeden Sicherung enthält. Dieses kann man
sichanzeigen lassen mit:
$ encfsBupBackup lsLog
Um nur die Namen aller Backup-Sätze zu bekom-men, verwendet
man:
$ encfsBupBackup lsBackups
Für die Auflistung der CommitIDs aus demBackup-Satz tar-Test2
dient folgender Einzei-ler:
$ encfsBupBackup lsCommits "tar-yTest2"
Die Sicherungsdaten ermittelt man mittels:
$ encfsBupBackup lsDates "datei-yTest2"
Daten wiederherstellenDas Wiederherstellen eines Datenstromes
an-hand seiner CommitID geschieht unspektakulärvia:
$ encfsBupBackup
pipeOutc9242bd6bb9cfd9c285f01ebb0dcdacf0c620038| tar xv
Dateien können folgendermaßen zurückgesi-chert werden:
$ encfsBupBackup filesOut "datei-yTest2" "2012-04-23-171250"
Der Zugriff via FUSE und Webserver geschiehtüber:
$ encfsBupBackup fuse /tmp/ymountpunkt
bzw. über:
$ encfsBupBackup web
Was tun wenn’s klemmt?In seltenen Fällen kann es vorkommen, dass
ei-ne Wiederherstellung aufgrund angeblich fehlen-der Dateien nicht
vorgenommen werden kann.Dies ist aber kein Grund zur Panik, denn
nachdem Entschlüsseln des bup-EncFS-Archivesfunktioniert die
Wiederherstellung tadellos.
Um die Entschlüsselung vorzunehmen, verwen-det man folgendes
Kommando:
$ encfsBupBackup decrypt
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 20
http://sourceforge.net/projects/dodger-tools/files/scripts/encfsBupBackuphttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
DATENSICHERUNG
Nachfolgende Wiederherstellungsaktionen wer-den nun aus dem
(temporär) entschlüsselten Ar-chiv vorgenommen. Für das Löschen des
unge-schützten Archivs gibt es:
$ encfsBupBackup rmDecrypt
Zum Überprüfen der Datenintegrität dient:
$ encfsBupBackup fsck
Hoch damitDamit aus dem lokalen Backup auch ein „Cloud-Backup“
wird, muss es natürlich noch hochgela-den werden. Dies
erledigt:
$ encfsBupBackup upload
Warum das Ganze?Meine Motivation war anfangs das Sichern
vonThunderbird-Postfächern, bei denen die E-Mailsjeweils in großen
Dateien zusammenfasst wer-den. Innerhalb dieser Dateien verändert
sich bei
jedem Abholen oder Senden von E-Mails aller-dings nur wenig.
Daher macht das Sichern vonkompletten Zuständen wenig Sinn. Eine
intelli-gente Lösung, die jeweils nur die Differenz spei-chert, mir
aber das Zurücksetzen der Postfächerauf den Zustand eines
beliebigen Datums er-laubt, musste her. Nachdem ich ein Skript
er-stellt hatte, das den kompletten E-Mail-Backup-Vorgang mit den
vorgestellten Werkzeugen ab-deckte, wollte ich auch weitere Daten
effizient si-chern. So kam es zu der Entwicklung des Skrip-tes
encfsBupBackup, mit dem ich beliebige Da-ten durch kurze Skripte
sichern lassen kann. Ne-ben den E-Mail-Postfächern sichere ich nun
al-le wichtigen Dateien und Dokumente sowie denEntwicklungszweig
von m23 nebst Datenbankmittels encfsBupBackup.
Quellen: LINKS
[1] http://www.arg0.net/encfs[2]
https://github.com/apenwarr/bup
[3] http://zoranzaric.de/bup-cda.pdf[4]
http://de.wikipedia.org/wiki/PAR2[5] http://fuse.sourceforge.net[6]
http://sourceforge.net/projects/dodger-tools/files/
scripts/encfsBupBackup
Autoreninformation
Hauke Goos-Habermann (Webseite)arbeitet freiberuflich als
Entwicklerund Trainer für Linux und OpenSource Software. Er ist
zudemHauptentwickler des Softwarevertei-lungssystems m23 und
weiterer OSSsowie Mitorganisator der Kieler OpenSource und Linux
Tage.
Diesen Artikel kommentieren
„Form“ © by Randall Munroe (CC-BY-NC-2.5),
http://xkcd.com/608/
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 21
http://www.arg0.net/encfshttps://github.com/apenwarr/buphttp://zoranzaric.de/bup-cda.pdfhttp://de.wikipedia.org/wiki/PAR2http://fuse.sourceforge.nethttp://sourceforge.net/projects/dodger-tools/files/scripts/encfsBupBackuphttp://sourceforge.net/projects/dodger-tools/files/scripts/encfsBupBackuphttp://m23.goos-habermann.de/http://www.freiesmagazin.de/comment/reply/275?edit[subject]=Cloud-Backup
mit Bordmitteln#comment-formhttp://xkcd.com/608/#'This space
intentionally left blank' is less immediately provocative but more
Hofstadterially
confusing.http://creativecommons.org/licenses/by-nc/2.5/http://xkcd.com/608/http://creativecommons.org/licenses/by-sa/3.0/deed.de
-
NAVIGATION
Routino von Uwe Steinmann
K aum ein Gemeinschaftsprojekt hat inkurzer Zeit soviel Zuspruch
und Un-terstützung erhalten wie OpenStreet-Map (siehe
„OpenStreetMap – Eine virtuel-le Welt gedeiht“, freiesMagazin
03/2012 [1]).Die weltweite Karte hat in vielen Ländern,darunter
auch Deutschland, einen Detailreich-tum erlangt, der kommerzielle
Kartenanbieterschlecht aussehen lässt. Ein anderes, zuneh-mend
interessantes Anwendungsgebiet istdie Navigation auf Basis der
OSM-Daten. ImWiki von OSM [2] werden verschiedene Pro-gramme und
Web-Seiten vorgestellt. DieserArtikel greift ein Programm heraus,
das etwasunglücklich im Wiki als „web-based router“bezeichnet wird:
Routino [3].
Grundsätzlich gilt: Wie hoch die Qualität der ge-fundenen Routen
ist, hängt stark von der Genau-igkeit und Vollständigkeit des
Datenmaterials ab.Hier gilt für OSM noch immer: Ländliche Gebie-te
sind oft ungenügend erfasst, Städte und Bal-lungszentren dagegen so
gut, dass selbst geeig-nete Wege für beispielsweise Rollstuhlfahrer
ge-funden werden. Die Daten sind das Eine, darüberhinaus ist aber
auch passende Software für dasRouting notwendig. Routino ist so
eine Software,die neben der Web-Schnittstelle auch ohne die-se
auskommt und beispielsweise aus Marble [4]heraus verwendet werden
kann. Mit Routino undden OSM-Daten ergeben sich Möglichkeiten,
diesonst kaum zu finden sind, beispielsweise eineRollstuhlroute
durch den Wuppertaler Zoo.
Mit dem Rollstuhl durch den Wuppertaler Zoo.
InstallationDie Installation von Routino ist besonders ein-fach
unter Debian. In der testing-Distributionist die aktuelle Version
2.2 enthalten. Kon-kret findet man zwei Pakete vor: Den
Routerselbst (routino) und eine grafische Oberfläche(routino-www),
die schlicht aber sehr funktionalist. Beides findet man auch in der
Download-datei, die man von der Routino-Homepage [5]
herunterladen kann. Eine Installationsanleitungaus den Quellen
der Software findet man eben-falls dort [6]. Im Folgenden wird
jedoch von derInstallation der Debian-Pakete ausgegangen.
Nach der Installation (bei der möglicherwei-se noch weitere
Pakete installiert werden,um Abhängigkeiten aufzulösen) kann die
Web-Schnittstelle unter http://localhost/routinoeingesehen werden.
Im Unterschied zur Original-
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 22
http://www.freiesmagazin.de/freiesMagazin-2012-03http://wiki.openstreetmap.org/wiki/Routinghttp://www.routino.orghttp://edu.kde.org/marble/http://www.freiesmagazin.de/mobil/2012-06-bilder/routino-zoo.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/routino-zoo.pnghttp://www.routino.org/download/http://www.routino.org/documentation/installation.htmlhttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
NAVIGATION
version zeigt diese als Kartenausschnitt die ge-samte Erde (und
nicht nur Großbritannien) undbietet die OSM Cycle Map als
alternative Karten-darstellung an.
Ein Routing kann aber noch nicht stattfinden, weilnoch eine
geeignete Datenbank mit dem Karten-material fehlt. Routino nutzt
nicht die OSM-Datendirekt, sondern konvertiert die Daten zunächstin
ein eigenes, optimiertes Format. Die etwa 20GB unkomprimierte
OSM-Daten für Deutschlandschrumpfen somit auf etwa 800 MB, die sich
übervier Dateien verteilen.
Erstellung der Routino-DatenbankDer Download, das Dekomprimieren
der Da-ten und die Erzeugung der Routino-Datenbankfür Deutschland
kann durch das folgende Shell-Skript erfolgen. Auf den Seiten von
Geofrabrik [7]finden sich weitere kleinere aber auch
größereBereiche der Welt.
#!/bin/shwget
http://download.geofabrik.de/osm/europe/germany.osm.bz2[ -f
germany.osm ] && rm germany.osmmkdir -p data[ -d data ]
&& rm -f data/*pbzip2 -d germany.osm.bz2planetsplitter
--dir=data --prefix=de germany.osm
Listing 1: create.sh
Zum Entpacken der Daten wird pbzip2 verwen-det, das mehrere
Prozessoren nutzen und so-mit auf Mehrprozessorsystemen deutlich
schnel-ler entpacken kann. Die Standardvariante bzip2kann aber
ebenso verwendet werden.
planetsplitter ist ein Programm aus der Routino-Distribution,
das die eigentliche Erzeugung derDatenbank übernimmt. Während das
Programmläuft, wird ständig der aktuelle Status ausgege-ben. Bei
einem Aufruf als cronjob ist es daherratsam, den Parameter
--loggable zu verwen-den und die Ausgaben in eine Datei zu
schreiben.planetsplitter --help listet alle verfügbarenOptionen
auf.
Auf einem Server mit einem Intel XEON 2.4 GHzmit vier Kernen
sowie 8 GB RAM dauert die Da-tenbankerzeugung etwa eine Stunde.
Das Ergebnis liegt in dem Verzeichnis data undbesteht aus den
vier Dateien
de-nodes.memde-relations.memde-segments.memde-ways.mem
Routino un-ter Debianerwartet die-se vier Da-teien oh-ne das
Prä-fix de- indem Ver-zeichnis
/var/lib/routino/data. Sie sollten also dort-hin kopiert werden
(dafür sind Root-Rechte er-forderlich). Damit ist bereits alles für
einen ers-ten Test vorbereitet, der bequem über die
Web-Schnittstelle erfolgen kann.
Der erste TestDas Routino-Web-Frontend ist in eine linke Spal-te
mit dem Bedienpanel und eine rechte Spaltemit der Karte aufgeteilt.
Zunächst sollte man inder Karte auf Deutschland zoomen, weil das
Rou-ting aufgrund der erstellten Datenbank nur dortfunktionieren
kann.
In dem Bedienpanel befinden sich auf dem Rei-ter „Options“ alle
Einstellmöglichkeiten, allen vor-an die Festlegung von Start- und
Zielpunkt in derRubrik „Waypoints“. Ein Klick auf das Symbol mitder
„1“ befördert es in die Mitte der Karte undsetzt die Startposition.
Danach lässt es sich belie-big auf der Karte verschieben. Analog
setzt manso den Zielpunkt für das Symbol mit der „2“. Alleweiteren
Einstellungen sind für einen ersten Testirrelevant, sodass ein
Klick auf einen der Knöpfe„Shortest“ oder „Quickest“ am unteren
Rand desBedienpanels das Routing startet. Das Ergebniserscheint
daraufhin als grüne oder blaue Linie inder Karte und im
Bedien-Panel wird auf den Rei-ter „Results“ umgeschaltet. Kürzere
Strecken biszu einigen Kilometern sind in der Regel in weni-ger als
einer Sekunde berechnet. Die Verzöge-rung liegt eher in der
grafischen Darstellung alsim eigentlichen Routing.
Anpassung der EinstellungenDie zuvor berechnete Route war für
die Fahrtmit einem Auto erstellt worden. Routino kenntjedoch
zahlreiche weitere Profile, die andereFortbewegungsmittel
beschreiben. Auch eigeneProfile sind möglich, erfordern aber
Änderun-gen an den Konfigurationsdateien, die über das
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 23
http://www.geofabrik.de/http://www.freiesmagazin.de/mobil/2012-06-listings/create.shhttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
NAVIGATION
Fußweg vom Jungfernstieg in Hamburg zum Englischen Garten in
München.
Web-Frontend nicht ausgeführt werden können.Dennoch bleiben
viele Einstellparameter, die aufdem Reiter „Options“ in den
Rubriken „TransportType“, „Highway Preferences“, „Speed
Limits“,„Property Preferences“ und „Other Restrictions“zu finden
sind.Die wichtigste Einstellung ist der Fahrzeugtypin der Rubrik
„Transport Type“. Die Datenbankwurde bereits für die möglichen
Fortbewegungs-möglichkeiten erstellt und berücksichtigt
Ab-sperrungen („barriers“) oder die Erlaubnis zur
Straßenbenutzung („access“). Der Fahrzeugtypverändert auch die
weiteren Einstellungen in denanderen Rubriken. Er wählt somit eine
sinnvol-le Voreinstellung, die jedoch danach verändertwerden kann.
So dürfen Fußgänger die Einbahn-straßen natürlich in beiden
Richtungen begehen,Fahrräder jedoch nicht (sofern dies nicht
ohnehinin den OSM-Daten erlaubt ist). Möchte man sichüber diese
Beschränkung hinwegsetzen, dannkann die Option „Obey oneway “
explizit abge-wählt werden.
Die „Highway Preferences“ und „Property Prefe-rences“ erlauben
besonders weitreichende Ein-stellmöglichkeiten, erfordern aber auch
behutsa-men Umgang. Hier geht es um eine Gewich-tung der
Straßentypen im allgemeinen. Das führtmitunter zu Wegführungen, die
nicht sofort ein-leuchtend sind. Dazu ein Beispiel: Als Fußgän-ger
steht man oft vor der Entscheidung zwischendem etwas kürzeren Weg
an der Hauptstraßeentlang oder dem längeren Weg durch den Parkoder
Wald. Hier ein geeignetes Maß zu finden istsehr subjektiv. Über die
„Highway Preferences“ist dies durch höhere Gewichtung der
größerenoder kleineren Straßen und Wege möglich. Dasführt mitunter
dazu, dass selbst bei Berechnungder kürzesten Route eine längere
Route gewähltwird, die dafür aber „durchs Grüne“ geht.
Verdeut-licht wird dies später nochmal, wenn die Integra-tion in
Marble vorgestellt wird.
Die „Speed Limits“ dürften auch ohne Erklärungeinleuchten. Zwei
Hinweise seien aber erlaubt.Wenn es eine Geschwindigkeitsbegrenzung
inden OSM-Daten gibt („maxspeed“), dann wirddiese auch
berücksichtigt. Die Geschwindigkeits-begrenzungen sind wirklich nur
vom Straßentypabhängig und nicht etwa davon, wo diese
Straßeverläuft. Auf einer „Primary road“ rast man dannauch schon
mal mit voreingestellten 96 km/hdurch eine Ortschaft. Die
veranschlagte Fahrdau-er ist also mit Vorsicht zu
interpretieren.
Hinter „Property Preferences“ verbergen sichweitere nützliche
Einstellungen zur Beinflussungdes Routings. „Bicycle Route“ und
„Walking
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 24
http://www.freiesmagazin.de/mobil/2012-06-bilder/routino-fussweg.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/routino-fussweg.pnghttp://creativecommons.org/licenses/by-sa/3.0/deed.de
-
NAVIGATION
Route“ berücksichtigen beispielsweise die Rela-tionen vom Typ
„route“ in den OSM-Daten, umRad- und Wanderwege zu priorisieren.
Für ei-ne Radtour kann es durchaus sinnvoll sein, denWert für
„Bicycle Route“ auf 90 % zu setzen, umsich vorwiegend auf
ausgewiesenen Radwegenfortzubewegen.
Eine Warnung sei abschließend noch erlaubt.Einzelne Prozentwerte
bis auf 100% hochzuset-zen, kann mitunter sehr unerwartete und
we-nig brauchbare Ergebnisse liefern. Insbesonde-re dann, wenn
Routino gezwungen ist, Wege zubenutzen, die nicht flächendeckend
erfasst sind,z.B. die besagten Rad- und Wanderwege. Da ge-rät die
Fahrradtour schnell zur Deutschlandtour,wenn Zwischenstücke einer
vermeintlich kurzenRoute nicht berücksichtigt werden, weil sie
nichtals Radweg ausgewiesen sind und Routino riesi-ge Umwege daher
für geeigneter hält. Der Fehlerliegt selten in Routino, sondern oft
in den unvoll-ständigen OSM-Daten oder eben den extrem ge-wählten
Einstellungen.
Darstellung der ErgebnisseDas Ergebnis einer Routenberechnung
ist rechtumfangreich. Da ist zunächst die Darstellung derWegstrecke
in der Karte. Die einzelnen Fahrtrich-tungsänderungen sind zudem im
Bedienpanelgelistet. Ein Klick auf einen Eintrag kennzeichnetdie
Position in der Karte und gibt eine Fahranwei-sung aus. Darüber
hinaus werden weitere Datei-en erzeugt, die sowohl für die Anzeige
im Brow-ser (HTML) als auch für eine Weiterverarbeitung
geeignet sind (Text-Dateien im CSV-Format undGPX-Dateien).
Der dritte Reiter „Data“ im Bedienpanel ist wirk-lich nur für
diejenigen gedacht, die tiefer indie Eigenheiten des Routers
absteigen möchten.Wenn man selbst für OSM Daten einträgt, dannist
dies aber durchaus eine sehr hilfreiche Dar-stellung des
Datenbestands, um letztlich auchFehler in den OSM-Daten zu
finden.
ZwischenhalteEs bleibt abschließend zum Frontend nur nochzu
erwähnen, dass auch bis zu sieben Zwischen-halte eingetragen werden
können. Hinter demStart- und Zielpunkt befinden sich sechs
Icons.Über das Plus-Zeichen kann ein weiterer Zwi-schenhalt hinter
dem aktuellen Zwischenhalt ein-getragen werden. Die einzelnen
Positionen wer-den daraufhin neu nummeriert. Routino selbstkann bis
zu 99 Positionen berücksichtigen, dasWeb-Frontend begrenzt dies auf
neun. Dass Zwi-schenhalte wieder entfernt und in der Reihen-folge
verändert werden können, ist fast schonselbstverständlich.
Routino auf der KommandozeileDas bisher Gesagte suggeriert eine
Web-Applikation mit etwas angestaubter Oberflä-che und auf den
Wiki-Seiten von OSM findetman Routino leider in einem Vergleich
unter-schiedlicher „Route services with public instan-ces“.
Tatsächlich ist Routino aber ein schlankesund in klassischer
Unix-Philosophie entwickel-tes Kommandozeilen-Programm, das eines
kann:
Wege zwischen Koordinatenpunkten finden. Dar-in liegt die
eigentliche Stärke der Software. Al-le Einstellmöglichkeiten der
Web-Oberfläche kön-nen über Optionen an Routino übergeben wer-den.
Ein auf das Notwendige reduzierter Aufrufwäre der Folgende:
$ routino-router --dir=/var/lib/yroutino/data
--transport=motorcar y--shortest --lon1=7.48679 --lat1y=51.37733
--lon2=7.49537 --lat2y=51.37761 --output-html
Die Option --output-html könnte noch entfal-len, allerdings
werden dann gleich fünf Datei-en, statt nur einer (shortest.html)
im aktuel-len Verzeichnis abgelegt: Eben die Dateien, dieauch über
die Web-Oberfläche eingesehen wer-den können. In Debian wird der
Router im Übri-gen in routino-router umbenannt, weil der Namerouter
zu generisch ist. Bei der Standarddistribu-tion ist also der
Programmname router zu ver-wenden.
Für deutsche Fahranweisungen bietet sich derParameter
--language=de an.
Auf dem oben beschriebenen Rechner brauchtder folgende
Aufruf
$ routino-router --dir=/var/lib/yroutino/data
--transport=motorcar y--shortest --lon1=10.01364 --lat1y=54.02590
--lon2=10.40675 --lat2y=47.67908 --language=en --output-yhtml
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 25
http://creativecommons.org/licenses/by-sa/3.0/deed.de
-
NAVIGATION
Routing mit Routino in Marble.
etwa 3,5 Sek. Berechnet wird eine Strecke überca. 840 km quer
durch Deutschland. Möchte mandie gleiche Strecke zu Fuß bewältigen,
dann soll-te man zusätzlich 22 Sek. für die Routenberech-nung
berücksichtigen. Bei 12.912 Minuten, dieRoutino für das Absolvieren
der Strecke veran-schlagt, eine durchaus akzeptable Zeit. :-)
Die3.134 Gehanweisungen sollten man allerdingsbesser nicht in
Papierform mitnehmen.
PHP-SchnittstelleWas manchen Anwendern wie die Steinzeit
desComputer-Zeitalters vorkommt, ist für den Web-Programmierer ein
Segen. Gemeint sind Kom-mandozeilenprogramme, die sich leicht in
Web-Anwendungen nutzen lassen. Daraus ergeben
sich weitreichendeAnwendungsgebiete.Wer in PHP program-miert und
sich nichtselbst um die pas-senden Optionen aufder
Kommandozeilekümmern möchte, dersollte sich das PEAR-Paket
Routino-Routerder MMK GmbH an-schauen [8]. Mit weni-gen Zeilen
PHP-Codelässt sich der Routerstarten und man be-kommt ein
Ergebnis-Objekt mit allen Ab-biegepunkten.
Listing 2: routing.php
Genutzt wird diese Schnittstelle beispielsweise ineiner
Umkreissuche zur Ermittlung des nächstge-legenen Restaurants zum
aktuellen Standort [9].Die Suche selbst sortiert die gefundenen
Restau-rants zunächst nach der kürzesten Luftliniendi-stanz. Für
die ersten sechs Treffer wird jedochdie Entfernung mit dem Auto
zusätzlich ermitteltund ausgegeben. Diese Entfernung basiert aufder
von Routino ermittelten Fahrstrecke.
MarbleDas KDE-Programm Marble [4] kann ebenfallsGebrauch von
Routino machen. Unter Debian istnichts weiter notwendig als die
Installation desProgramms. In der ebenfalls zweigeteilten
Dar-stellung in Marble gibt es im linken Bereich einenReiter
„Routing“. Sofern Routino von Marble er-kannt wurde, findet man
unten auf dem Reiter einAuswahlmenü der möglichen Router, z.B.
auchOpenRouteService [10].
Nach der Aktivierung sind zwei Routen durch dievorgegebenen
Punkte ersichtlich. Die blaue Rou-te wurde durch Routino berechnet.
Die graueRoute stammt von OpenRouteService. Was be-reits oben
erwähnt wurde, zeigt sich hier ganzdeutlich: Der Weg von Punkt B zu
Punkt C ver-läuft bei Routino durch den Wald und ist damitsicher
länger als der vorgeschlagene Weg vonOpenRouteService über die
Hauptstraße vomTyp „secondary“. Auch auf dem Weg von PunktD zu
Punkt E verlässt Routino die Straße vomTyp „tertiary“ sobald als
möglich und wählt denZickzack-Kurs durch das Wohngebiet. Auch
hierwird der offensichtlich längere Weg gewählt. Die
© freiesMagazin CC-BY-SA 3.0 Ausgabe 06/2012 26
http://www.freiesmagazin.de/mobil/2012-06-bilder/routino-marble.pnghttp://www.freiesmagazin.de/mobil/2012-06-bilder/routino-marble.pnghttp://www.mmk-hagen.de/produkte-services/download.htmlhttp://www.freiesmagazin.de/mobil/2012-06-listings/routing.phphttp://www.gastlicheswestfalen.de/nc/umkreissuche.htmlhttp://edu.kde.org/marble/http://www.openrouteservice.org/http://creativecommons.org/licenses/by-sa/3.0/deed.de
-
NAVIGATION
Abneigung Routinos für größere Straßen beider
Fußgängernavigation liegt in den reduzier-ten Prozentwerten für
Straßen dieses Typs (ein-sehbar in den „Highway Preferences“ der
Web-Oberfläche). Marble erlaubt hier keine Änderungder
voreingestellten Werte. Sie müssten direkt inden
Konfigurationsdateien von Routino
erfolgen(/usr/share/routino/profiles.xml) oderbesser durch Angabe
einer eigenen Profildateibeim Aufruf des Routers (Option
--profiles).
Zu guter LetztRouten in guter Qualität berechnen kann
Routino.Nicht minder interessant ist aber auch die Nut-zung als
Testwerkzeug für die eigenen Beiträgezu OSM. Die Berechnung
bekannter Wegführun-gen durch Routino offenbart oft
Überraschungen,die bei näherer Betrachtung auf
unzureichendesMapping zurückzuführen sind. Schranken („bar-rier“),
denen die Passierbarkeit durch Fußgän-ger fehlt, Einbahnstraßen,
die von Fahrradfah-rern beidseitig befahren werden dürfen, die
Rou-tino aber umständlich umfährt, weil dies nicht ausden OSM-Daten
hervorgeht, fehlerhafte Abbiege-vorschriften oder sogar fehlende
Verbindungenzwischen Wegen fallen schnell auf.
Eine zweite Anwendung ist das gezielte Erstellenvon gpx-Dateien
und das Ausmessen von Stre-cken. Gelegentlich benötigt man im
Vorfeld einegpx-Datei einer anstehenden Wanderung oderFahrradtour.
Eventuell möchte man auch nur wis-sen, auf welche Streckenlänge man
sich einlässt.Mit genügend Zwischenhalten schickt man Rou-tino
genau auf den geplanten Weg und erhält die
Länge der Strecke, sowie deren gpx-Datei zumDownload.
Ein paar EigenheitenDas Routino Web-Frontend erlaubt ein Zoom
biszur Stufe 16. In der höchsten Stufe fällt auf, dassberechnete
Routen nicht immer genau auf We-gen liegen. Bei sehr nahe
aneinander liegendenWegen kann es auch schwierig werden, den
ge-nauen Weg zu ermitteln. Der Grund liegt in einerOptimierung der
Datenbank, die seit Version 2.2greift. Knoten auf Wegen, die
weniger als 5 Me-ter von der geradlinigen Verbindung
abweichen,werden nicht mehr berücksichtigt. Dies reduziertdie
Datenbankgröße um etwa ein Drittel und ver-kürzt die Zeit für das
Routing geringfügig. DerPreis sind etwas ungenauere Wegführungen,
diefür die Navigation aber unerheblich sind.
Die ermittelten Wegzeiten waren schon Thema.Man könnte auch
behaupten, die vorhergesag-ten Zeiten sind innerstädtisch
hoffnungslos opti-mistisch. Das liegt nicht nur an den
Höchstge-schwindigkeiten, die aus dem Straßentyp ermit-te