Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie...

49
freies Magazin März 2013 Topthemen dieser Ausgabe Fedora 18 Seite 3 Das neu erschienene Fedora 18 will den Benutzern wie jedes halbe Jahr die neueste freie Soft- ware und die neuesten Technologien bringen, von denen die wichtigsten im Laufe des Artikels erwähnt und, soweit möglich, auch ausprobiert werden. Vorrangig wird auf die Desktopumge- bungen GNOME und KDE eingegangen. (weiterlesen) Einführung in Docbook Seite 18 Wer publiziert, Software dokumentieren möchte oder sich mit elektronischen Dokumentenfor- maten beschäftigt, der stößt irgendwann mit Sicherheit auf Docbook. Docbook stammt aus dem Bereich der EDV-Dokumentation und wird überwiegend, aber nicht ausschließlich, dafür verwendet. Docbook ist ausgereift und umfangreich genug, um eine Grundlage für die pro- fessionelle Buchproduktion zu sein, wird aber auch für kleinere Projekte verwendet, wie zum Beispiel die Linux-Manpages. Docbook wird mittlerweile vielfältig eingesetzt und es kann damit grundsätzlich plattformunabhängig bzw. -übergreifend gearbeitet werden. (weiterlesen) Subsurface – Tauchen unter Linux Seite 30 Subsurface ist ein quelloffenes und kostenloses Programm zur Verwaltung von Tauch- Logbucheinträgen für Linux, MacOS X und Windows. Es erlaubt den direkten Import von Da- ten aus einer Vielzahl von Tauchcomputermodellen und -programmen. Außerdem bietet es eine ansprechende grafische Aufbereitung der vom Tauchcomputer während des Tauchgangs aufgezeichneten Daten. Eine Fülle weiterer Informationen zu den Tauchgängen können vom Benutzer komfortabel erfasst und verwaltet werden. (weiterlesen) © freiesMagazin CC-BY-SA 3.0 Ausgabe 03/2013 ISSN 1867-7991

Transcript of Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie...

Page 1: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

freiesMagazin Maumlrz 2013

Topthemen dieser Ausgabe

Fedora 18 Seite 3

Das neu erschienene Fedora 18 will den Benutzern wie jedes halbe Jahr die neueste freie Soft-ware und die neuesten Technologien bringen von denen die wichtigsten im Laufe des Artikelserwaumlhnt und soweit moumlglich auch ausprobiert werden Vorrangig wird auf die Desktopumge-bungen GNOME und KDE eingegangen (weiterlesen)

Einfuumlhrung in Docbook Seite 18Wer publiziert Software dokumentieren moumlchte oder sich mit elektronischen Dokumentenfor-maten beschaumlftigt der stoumlszligt irgendwann mit Sicherheit auf Docbook Docbook stammt ausdem Bereich der EDV-Dokumentation und wird uumlberwiegend aber nicht ausschlieszliglich dafuumlrverwendet Docbook ist ausgereift und umfangreich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein wird aber auch fuumlr kleinere Projekte verwendet wie zumBeispiel die Linux-Manpages Docbook wird mittlerweile vielfaumlltig eingesetzt und es kann damitgrundsaumltzlich plattformunabhaumlngig bzw -uumlbergreifend gearbeitet werden (weiterlesen)

Subsurface ndash Tauchen unter Linux Seite 30Subsurface ist ein quelloffenes und kostenloses Programm zur Verwaltung von Tauch-Logbucheintraumlgen fuumlr Linux MacOS X und Windows Es erlaubt den direkten Import von Da-ten aus einer Vielzahl von Tauchcomputermodellen und -programmen Auszligerdem bietet eseine ansprechende grafische Aufbereitung der vom Tauchcomputer waumlhrend des Tauchgangsaufgezeichneten Daten Eine Fuumllle weiterer Informationen zu den Tauchgaumlngen koumlnnen vomBenutzer komfortabel erfasst und verwaltet werden (weiterlesen)

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 ISSN 1867-7991

MAGAZIN

Editorial

Steam fuumlr LinuxMitte Februar war es soweit Steam fuumlr Linux wur-de nach einer ausgiebigen Beta-Phase fuumlr alleLinux-Nutzer freigegeben [1] Wobei bdquoalleldquo viel-leicht nicht alle meint da offiziell erst einmalnur Ubuntu unterstuumltzt wird Als vermutlich meistgenutzte Distribution ist dies aber natuumlrlich einverstaumlndlicher Schritt fuumlr Valve der Firma hinterSteam

Als Lockangebot gab es die ersten Tage zahlrei-che Spieletitel zum verguumlnstigten Preis mit 50 oder gar 75 Rabatt Dabei vertreten warennicht nur Indie-Titel wie Dungeons of DredmorOsmos World of Goo Aquaria oder Bastion wieder eine oder andere vielleicht denken moumlchteValve hat einige ihrer eigenen Triple-A-Spiele por-tiert und bietet diese fuumlr Linux an Darunter u aSerious Sam 3 Team Fortress 2 Half-Life oderCounter Strike Source

Natuumlrlich sollte man immer im Hinterkopf behal-ten dass die Nutzungsbestimmungen von Steamalles andere als kundenfreundlich sind Und esgab auch schon des oumlfteren Meldungen dassSpieler nicht mehr auf ihre teuer gekauften Spie-le zugreifen konnten weil Steam den Zuganggesperrt hat Ein Wiederverkauf ist voumlllig ausge-schlossen

Dennoch bietet Steam fuumlr Linux eine gute Chan-ce dass viele Nutzer die Windows als Zweit-OS zum Spielen aufgespielt haben sich komplett

von Microsoft loumlsen Mit Windows 8 setzt Micro-soft alles daran Windows-Nutzer zu vergraulenund da wird es den einen oder anderen sicherlichfreuen dass es Steam auch fuumlr Linux gibt

Im Endeffekt muss jeder selbst entscheiden ober das Angebot wahrnimmt Mit den HumbleBundles [2] gibt es fuumlr den Spaszlig zwischendurcheine gute Alternative die einen auch so lange ge-nug beschaumlftigen koumlnnen

Ende des sechsten Programmierwett-bewerbs ndash jetzt wirklichDer sechste freiesMagazin-Programmierwettbe-werb [3] nahm in den letzten Monaten immermal wieder Raum im Editorial ein Jetzt ist aberSchluss damit denn der Wettbewerb ist zu En-de und die Auswertung wurde durchgefuumlhrt DieGewinner Daten und auch ein paar Hintergrund-informationen koumlnnen Sie in einem Extra-Artikelauf Seite 43 nachlesen

Und nun wuumlnschen wir Ihnen viel Spaszlig beim Le-sen der neuen Ausgabe

Ihre freiesMagazin-Redaktion

LINKS

[1] httpwwwpro-linuxdenews119455steam-fuer-linux-freigegebenhtml

[2] httpwwwhumblebundlecom[3] httpwwwfreiesmagazindesechster_

programmierwettbewerb

InhaltLinux allgemeinFedora 18 S 3Der Februar im Kernelruumlckblick S 12

AnleitungenFirefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II

S 15

Einfuumlhrung in Docbook S 18Eine kurze Einfuumlhrung in Hadoop S 23Laufzeitanalyse mit gprof S 27

SoftwareSubsurface ndash Tauchen unter Linux S 30Foto-Kartengenerator S 34

CommunityRezension PC-Netzwerke Das umfassen-de Handbuch (6 Auflage)

S 39

Rezension Die Kunst des Vertrauens S 41

MagazinEditorial S 2Die Gewinner des sechsten Programmier-wettbewerbs

S 43

Leserbriefe S 46Veranstaltungen S 48Vorschau S 48Konventionen S 48Impressum S 49

Das Editorial kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 2

DISTRIBUTION

Fedora 18 von Hans-Joachim Baader

D as neu erschienene Fedora 18 will denBenutzern wie jedes halbe Jahr dieneueste freie Software und die neues-

ten Technologien bringen Der Artikel zeigtdie Neuerungen und was es dabei zu beach-ten gibt

Redaktioneller Hinweis Der Artikel bdquoFedora 18ldquoerschien erstmals bei Pro-Linux [1]

UumlberblickFedora 18 [2] enthaumllt eine Vielzahl von Neuerun-gen von denen die wichtigsten im Laufe des Ar-tikels erwaumlhnt und soweit moumlglich auch auspro-biert werden Vorrangig wird auf die Desktopum-gebungen GNOME und KDE eingegangen

Wie immer sei angemerkt dass es sich hiernicht um einen Test der Hardwarekompatibilitaumlthandelt Es ist bekannt dass Linux mehr Hard-ware unterstuumltzt als jedes andere Betriebssys-tem und das uumlberwiegend bereits im Standard-Lieferumfang Ein Test spezifischer Hardware wauml-re zu viel Aufwand fuumlr wenig Nutzen Falls manauf Probleme mit der Hardware stoumlszligt stehen dieWebseiten von Fedora zur Loumlsung bereit

Da eine Erprobung auf realer Hardware nicht dasZiel des Artikels ist werden fuumlr den Artikel zweiidentische virtuelle Maschinen 64 Bit unter KVMmit jeweils 1 GB RAM verwendet Auszligerdem wur-de ein Netbook mit 32-Bit-CPU aber funktionie-render Grafikbeschleunigung von Fedora 17 auf18 aktualisiert

Bootscreen der DVD

InstallationFedora kann von DVDs Live-CDs oder minimalen Bootme-dien installiert werden Natuumlr-lich kann man aus einem ISO-Image auch ein USB-Mediumfuumlr die Installation erstellenDie Live-CDs in den Vari-anten GNOME KDE LXDEund Xfce sind aufgrund ih-res geringen Umfangs eher ei-ne Notloumlsung fuumlr die Installa-tion denn es fehlen dann un-ter anderem LibreOffice undUumlbersetzungen Zwar erfolgtdie Installation binnen Minu-ten da hierbei offenbar mehroder weniger nur ein Abbildder CD auf die Platte geschrie-ben wird aber fuumlr normalevollstaumlndige Installationen sind die DVD oder dasminimale Image vorzuziehen bei dem die eigent-liche Distribution uumlber das Netz installiert wird

Die Installation von Fedora erfordert mindestens786 MB RAM wie schon in Version 17 (siehebdquoFedora 17ldquo freiesMagazin 082012 [3] Fuumlr denBetrieb werden mehr als 1 GB empfohlen wasaber allenfalls fuumlr ziemlich alte Rechner zu einemProblem wird

In Fedora 18 wurde das InstallationsprogrammAnaconda gruumlndlich uumlberarbeitet und seine

Oberflaumlche voumlllig neu geschrieben [4] Dies warder Hauptgrund fuumlr die auszligerordentliche Verzouml-gerung der Freigabe von Fedora 18 um uumlber zweiMonate Die neue Oberflaumlche soll einfacher zubenutzen sein aber dennoch alle Optionen bie-ten wenn sie benoumltigt werden

Bei der Sprachauswahl sollte man gleich dieOption bdquoSet keyboardldquo aktivieren sonst mussman die Tastatur spaumlter manuell konfigurierenDanach gelangt man in der neuen Installa-tion zu einer Uumlbersichtsseite Warum hier alleTexte in Groszligbuchstaben geschrieben wurden

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 3

DISTRIBUTION

Zusammenfassung der Installation

wissen wohl nur die Entwickler Auf der Seite sindalle Punkte die vom Benutzer noch bearbeitetwerden muumlssen mit einem gelben bdquoWarndreieckldquomarkiert ndash als ob es ein Fehler des Benutzerssei dass diese Punkte noch offen sind

Als erstes muss man das Installationsziel aus-waumlhlen Die erkannten Festplatten werden durchein Icon angezeigt das allerdings die grundle-gende Information vermissen laumlsst um welchesGeraumlt (devsda usw) es sich handelt Stattdes-sen zeigen die Entwickler den Modellnamen desGeraumltes an Hier gibt es ein schwerwiegendesProblem Hat man zwei oder mehr Festplatten

desselben Modells ver-baut wie soll man sieunterscheiden Ein Merk-mal waumlre der Geraumltena-me ein anderes die Seri-ennummer ndash beides fehltjedoch Wenn man plantein RAID-System einzu-richten mag das ver-schmerzbar sein in ande-ren Faumlllen besteht jedochdie Gefahr dass man diefalschen Partitionen uumlber-schreibt Bei genauererPruumlfung stellt sich her-aus [5] dass die Entwick-ler die Platten auch in derfalschen Reihenfolge an-zeigen was Fehler gera-dezu herausfordert

Bevor man die Installation starten kann mussman die Installationsquelle auswaumlhlen Meistmuss man hier nur die Vorgabe bestaumltigen jeden-falls wenn man von der DVD installiert Warumdie explizite Auswahl hier forciert wird obwohlman sie von der Uumlbersichtsseite aus aufrufenkann wenn man sie braucht ist nicht nachvoll-ziehbar

Auch die Software-Auswahl sollte man sich nochansehen Das sollte man sowieso wenn mannicht GNOME sondern eine andere Oberflaumlcheinstallieren will aber es ist auch noumltig haumlufigbenoumltigte Anwendungen wie LibreOffice explizit

auszuwaumlhlen sonst werden sie nicht mit instal-liert und man muss es spaumlter nachholen waszusaumltzlichen Aufwand darstellt Wenn man KDEauswaumlhlt sollte man darauf achten dass auchApper installiert wird ansonsten muss man spauml-ter seine Software-Updates oder zusaumltzliche Pro-gramme von der Kommandozeile aus installie-ren

Nach Angaben der Entwickler ist Anaconda indieser Version noch unvollstaumlndig Jedoch sinddie gewohnten Optionen wie die Verschluumlsse-lung der gesamten Festplatte oder einzelner Par-titionen RAID und LVM vorhanden Auch dasDateisystem Btrfs wird wieder unterstuumltzt sogarmit seinen spezifischen Funktionen wie Subvolu-mes Wer die automatische Partitionierung waumlhlterhaumllt eine LVM-Installation mit einer 500 MBgroszligen boot-Partition und dem Rest als Root-Partition Die Installation verlief im Test unfallfreivon den erwaumlhnten Problemen abgesehen

Wer bereits Fedora 17 installiert hat kann mitdem Programm fedup auf Version 18 aktualisie-ren Uumlblicherweise bezieht man dabei die ca1400 zu aktualisierenden Pakete uumlber das Netzaber auch andere Quellen sind moumlglich Das Up-date funktionierte problemlos allerdings erst imzweiten Anlauf Anhand der Logdatei konnte mansehen was passiert war Das Update schaufeltein mehr als 300 MB groszliges Bootimage nachboot Ist nicht genug Platz vorhanden geht esschief ohne dass der Benutzer informiert wirdDies duumlrfte dem Bugzilla-Fehler 902498 [6] ent-sprechen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 4

DISTRIBUTION

Bootscreen von Fedora 18

Beim ersten Booten des installierten Systemskommt das bekannte Einrichtungsprogramm mitder Moumlglichkeit Benutzer anzulegen

AusstattungDer Kernel in Fedora 18 beruht auf Linux 372Dazu gesellen sich zahlreiche aktualisierte Soft-warepakete Fedora 18 enthaumllt eine neue Ver-sion des NetworkManagers der die Nutzung vonWLAN-Hotspots [7] deutlich erleichtern soll AlsDesktop-Umgebungen stehen in Fedora 18 un-ter anderem KDE SC 49 GNOME 36 Xfce

Erstellung des ersten Benutzers

410 und Sugar 098 zur Verfuumlgung Auszligerdemwurden der GNOME-Fork Cinnamon und derGNOME2-Nachfolger Mate aufgenommen Dievon Red Hat entwickelten Schriften bdquoLiberationFontsldquo kommen in einer neuen Version Avahidie freie MDNS-Implementation wird auf Desk-tops standardmaumlszligig aktiviert

Administratoren finden in Fedora 18 unter ande-rem erstmals die fehlertolerante und skalierbareNoSQL-Datenbank Riak [8] und Samba 4 [9] dasSMB3 und vertrauenswuumlrdige Domaumlnen von Fre-eIPA unterstuumltzt Ein Fedora 18-System soll sich

auch leicht in eine Active Directory- oder FreeIPA-Domaumlne integrieren lassen Auszligerdem sind jetztSystem-Updates offline [10] moumlglich indem Pa-kete die zuvor im Hintergrund heruntergeladenwurden beim Neustart des Systems in einemspeziellen Update-Modus installiert werden be-vor das regulaumlre System startet Dadurch werdeninkonsistente Zustaumlnde vermieden die bei Upda-tes im laufenden System vorkommen koumlnnen

Fuumlr Administratoren ist es auch wichtig zuwissen dass einige Konfigurationsdateien inetcsysconfig nicht mehr verwendet werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 5

DISTRIBUTION

sollen Stattdessen werden andere Dateien inetc benutzt

Einiges hat sich bei der Sicherheit getan Die In-stallation unterstuumltzt UEFI Secure Boot Der Dae-mon rngd der dem Kernel-Zufallsgenerator zu-saumltzliche Entropie zufuumlhren soll wird standard-maumlszligig installiert aber nicht gestartet Mit SELi-nux und virt-sandbox koumlnnen nun auch Dienstein sicheren Sandkaumlsten ausgefuumlhrt werden auchals Root Mit der Bibliothek libseccomp koumlnnenAnwendungen festlegen welche Systemaufrufesie ausfuumlhren wollen Qemu und KVM nutzendies zur Erhoumlhung ihrer Sicherheit Die Verwen-dung von PolicyKit wurde weiter ausgedehnt

Ein neues Kommandozeilenprogramm ssm (Sys-tem Storage Manager [11]) vereinheitlicht die Ver-waltung von Speichergeraumlten gleichguumlltig ob da-bei LVM RAID oder Btrfs zum Einsatz kommenDas Verzeichnis tmp wird als tmpfs im RAM rea-lisiert [12] was sich aber aumlndern laumlsst Aumlndernmuss man es aber nur wenn ein Programm ge-gen die Konventionen verstoumlszligt und groszlige Datei-en in tmp ablegt statt den Systempfad abzufra-gen oder als Fallback vartmp zu verwendenNeu ist FedFS [13] ein Mechanismus mit demman eine konsistente Sicht auf den Dateibaumvon verschiedenen Dateiservern einrichten kannEs ist allerdings noch im Status einer Vorschau

Firewalld [14] wird anstelle von iptables standard-maumlszligig als Firewall eingesetzt Dadurch wird dieFirewall dynamisch und benoumltigt fuumlr Aumlnderungenkeinen Neustart mehr Der Paketmanager DNFist erstmals als Alternative zu YUM verfuumlgbar In

Firewall-Konfiguration

einem kurzen Test arbeitete ermindestens genauso schnell wieYum dem man bekanntlich bis-weilen mehr Geschwindigkeitwuumlnscht und teilweise auch deut-lich schneller Yum besitzt aberwesentlich mehr Funktionen ver-mutlich ist DNF derzeit nur einExtra Systemtap ein umfangrei-ches Trace-System wurde aufVersion 2 aktualisiert auch dasTrace-System LTTng liegt in Ver-sion 20 vor

Fuumlr Entwickler gab es zahlrei-che Updates der Programmier-umgebungen beispielsweise Dund Haskell Unterstuumltzung fuumlr dieProgrammiersprache Clojure kamneu hinzu Perl (516) Python (33) Ruby onRails (32) und PHP wurden aktualisiert DiePower7-Plattform ppc64p7 wird nun unterstuumltztOwncloud ist jetzt in der Distribution enthaltenund Terminals koumlnnen 256 statt nur 8 Farben nut-zen

Auch im Bereich Virtualisierung und Cloud wur-de Fedora 18 erweitert OpenShift Origin ei-ne Platform-as-a-Service-Infrastruktur (PaaS)wurde hinzugefuumlgt Mit Eucalyptus lassen sichprivate Amazon-kompatible Clouds verwaltenDie Plattform OpenStack fuumlr Infrastructure-as-a-Service (IaaS) wurde auf die Version bdquoFolsomldquoaktualisiert die alternative IaaS-Plattform Eu-calyptus auf Version 31 Das Projekt Heat zur

Orchestrierung von Cloud-Anwendungen kamhinzu Virt Live Snapshots machen es moumlglichSchnappschuumlsse von virtuellen Maschinen unterQemu und libvirt zu machen ohne die Gastsys-teme anzuhalten oVirt wurde auf Version 31 ge-bracht und enthaumllt jetzt auch grafische Werkzeu-ge

Fedora 18 startet etwa genauso schnell wie seinVorgaumlnger Wie immer ist SELinux eingebundenund aktiviert Als normaler Benutzer merkt manuumlberhaupt nichts davon solange die Konfigurati-on korrekt ist In Fedora 18 wie auch in der Vor-version trat kein sichtbares Problem im Zusam-menhang mit SELinux auf Fuumlr den Fall dass einProblem auftritt sei es nach der Installation von

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 6

DISTRIBUTION

zusaumltzlicher Software oder anderen Aumlnderungensteht ein Diagnosewerkzeug zur Verfuumlgung

KDE benoumltigt in Fedora 18 direkt nach dem Startmit einem geoumlffneten Terminal-Fenster etwa 420MB RAM Gnome dagegen hat sich auf 470MB aufgeblaumlht hauptsaumlchlich durch die GNOME-Shell Bei der Geschwindigkeit laumlsst sich keinnennenswerter Unterschied zwischen den Desk-tops feststellen sofern genug RAM vorhanden istDie Angaben zum Speicherverbrauch sind nurals Anhaltswerte zu sehen die sich je nach Hard-ware und Messzeitpunkt erheblich unterscheidenkoumlnnen

GNOMEGNOME 36 ist der Standard-Desktop von Fedo-ra 18 wenn man nicht ausdruumlcklich KDE Xfce

Der Login-Bildschirm von GNOME

oder anderes auswaumlhlt Gegenuumlber GNOME 34ist der Menuumlpunkt Ausschalten anstelle des alsnutzlos kritisierten Suspendieren zuruumlckgekehrtDie Aktivitaumltenuumlbersicht der GNOME-Shell be-sitzt nun einen Gitter-Button in der Startleiste(Dash) mit dem man angeblich schnell zu ein-zelnen Anwendungen wechseln kann Schnellist daran allerdings nichts weil man dennochmeistens nach der Anwendung suchen mussDie Eingabe von Suchbegriffen soll durch dasHervorheben der Suchleiste vereinfacht werden

Das Sperren des Bildschirms folgt nun demParadigma einer Jalousie die vor dem Bild-schirm heruntergezogen wird und wurde direktin die GNOME-Shell eingebaut Der gesperrteBildschirm zeigt eine groszlige Uhr Anpassungs-moumlglichkeiten fehlen Der gesperrte Bildschirm

erlaubt aber auch das Anhalten undAumlndern der Lautstaumlrke falls Audioabgespielt wird Das kann man zuRecht kritisch sehen Uumlberdies wer-den auch Benachrichtigungen einge-blendet was allerdings abschaltbar istDoch es ist paradox dass ausgerech-net eine Funktion bei der es keiner Op-tion bedarf ndash die Privatsphaumlre gebietetes dass keinerlei Benachrichtigungenin Abwesenheit des Benutzers ange-zeigt werden ndash eine Option besitzt undauch noch die falsche Standardeinstel-lung hat waumlhrend das GNOME-Teamsonst jegliche individuellen Einstellun-gen verweigert jedenfalls in der grafi-schen Oberflaumlche

Eine der wichtigsten Neuerungen ist ferner dieUumlberarbeitung der Benachrichtigungen Fruumlherwurden Benachrichtigungen am oberen Bild-schirmrand unter der Systemleiste eingeblendetnun haben sie eine eigene Leiste am unterenBildschirmrand erhalten die aber nur eingeblen-det wird wenn man mit der Maus fuumlr einen Mo-ment an den unteren Bildschirmrand faumlhrt Wenndie Leiste eingeblendet wird uumlberlappt sie sichnicht mit den Bildschirminhalten sondern schiebtdiese nach oben Die Elemente in der Leiste wur-den groumlszliger klarer und verschieben sich nichtDie Benachrichtigungen selbst koumlnnen geschlos-sen werden und einige davon bieten die Moumlg-lichkeit direkt auf sie zu reagieren beispielswei-se durch Eingabe einer Antwort in ein Instant-Messaging-System Wenn man mit einer Anwen-dung im Vollbildmodus arbeitet oder ein Spielspielt werden nur wichtige Nachrichten ange-zeigt die anderen werden erst spaumlter praumlsentiertWie sich diese Aumlnderung in der Praxis bewaumlhrtkann dieser Test nicht aufzeigen

Der Standard-Webbrowser unter GNOME istFirefox 180 nicht der mit GNOME mitgelie-ferte Der Dateimanager Files ehemals Nauti-lus erhielt eine stark verbesserte Suchfunktionleichten Zugriff auf kuumlrzlich benutzte Dateienverbesserte Werkzeug- und Seitenleisten bes-sere Menuumlorganisation und Optionen zum Ver-schieben oder Kopieren an einen ausgewaumlhl-ten Ort Allerdings wurden auch Funktionen ent-fernt die von einigen Benutzern geschaumltzt wur-den Der Webbrowser Web erhielt eine Uumlbersichtwie sie auch andere Browser bieten und einen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 7

DISTRIBUTION

Desktop von GNOME 36 mit Anwendungen

verbesserten Vollbildmodus Weitere erwaumlhnens-werte Verbesserungen sind die vollstaumlndige Inte-gration von Funktionen zur Barrierefreiheit alsozur Unterstuumltzung von Anwendern die verschie-dene Arten von Behinderungen aufweisen unddie Integration von alternativen Eingabemetho-den wie sie zur Eingabe vieler nichteuropaumlischerSchriften benoumltigt werden

Die GNOME-Shell kann dank Software-Rendering auf jeder Hardware laufen derFallback-Modus steht optional aber noch zurVerfuumlgung Im Gegensatz zu Unity unter Ubuntu1210 ist das Software-Rendering aber einiger-maszligen schnell und durchaus noch benutzbardoch beim Abspielen von Videos versagt es Dasglobale Menuuml fuumlr Anwendungen ist weiterhinnicht mit der Tastatur erreichbar und Tasten-kuumlrzel fuumlr die Menuumlpunkte fehlen Weiter fehltes an Moumlglichkeiten GNOME nach eigenen

Anwendungsuumlbersicht in der GNOME-Shell

Vorstellungen zu konfigurieren Zum Gluumlck ist esmoumlglich uumlber Erweiterungen der GNOME-Shelleiniges zu aumlndern und einige dieser Erweiterun-gen sind uumlber die Paketverwaltung verfuumlgbar

Die neue Anwendung Boxes enttaumluscht durcheinen gravierenden Mangel an Einstellungen Vir-tuelle Maschinen sind komplexe Gebilde mit vie-len Optionen da koumlnnen die wenigen Optionendie Boxes bietet nur einige voumlllig anspruchslo-se Faumllle abdecken Aumlhnlich primitiv ist die Doku-mentenverwaltung die zudem nutzlos ist wennman nicht bereit ist Dokumente in irgendwelcheClouds zu stellen

KDEKDE ist in Version 49 enthalten aber jetztnur noch ein bdquoSpinldquo von Fedora Es gibt ei-ne KDE-Live-CD aber keine Installations-DVDmehr Zur Installation verwendet man jetzt die

Desktop von KDE 49

Fedora-Installations-DVD und bei der Software-Auswahl waumlhlt man KDE sowie die benoumltigtenAnwendungen aus Den Umfang der installiertenKDE-Anwendungen bestimmt man damit selbst

KDE 49 setzt noch mehr auf Qt Quick Insge-samt halten sich die groumlszligeren Aumlnderungen ge-genuumlber KDE 48 in Grenzen Eine Reihe vonVerbesserungen gab es im Dateimanager Dol-phin und in der Terminal-Emulation Konsole Vie-le weitere Anwendungen und Spiele bekamenkleinere neue Funktionen und Verbesserungen

Die Aktivitaumlten wurden staumlrker mit Dateien Fens-tern und anderen Ressourcen integriert Es solljetzt leichter sein Dateien und Fenster einer Ak-tivitaumlt zuzuordnen und so die eigenen Arbeitsflauml-chen passender zu organisieren Die Ordneran-sicht kann nun Dateien anzeigen die zu einer Ak-tivitaumlt gehoumlren und es so erleichtern die Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 8

DISTRIBUTION

Desktop von KDE 49 mit Anwendungen

in sinnvolle Zusammenhaumlnge zu stellen PrivateAktivitaumlten koumlnnen verschluumlsselt werden DerWindow-Manager KWin erhielt Aumlnderungen sodass man Fensterregeln fuumlr Aktivitaumlten definierenkann

KDE ist im Prinzip der exakte Gegenpol zuGNOME Hier sind die traditionellen Bedienele-mente unbeschaumldigt erhalten und es gibt Einstel-lungsmoumlglichkeiten bis zum kleinsten Detail DiePlasma-Oberflaumlche fuumlr Mobilgeraumlte ist vollstaumln-dig separat von der Desktop-Variante und kanndiese daher auch nicht beeintraumlchtigen Die An-wendungen bieten einen groszligen Funktionsum-fang und sind konfigurier- und erweiterbar Natuumlr-lich gibt es bisweilen andere freie Anwendungen

die den KDE-Anwendungen uumlber-legen sind oder von einigen Be-nutzern bevorzugt werden aberviele KDE-Anwendungen sind gutund nuumltzlich

Die Kritikpunkte an KDE sind die-selben wie eh und je KDEPIMwird des oumlfteren kritisiert beson-ders KMail Da ich selbst noch nieKMail-Benutzer war kann ich da-zu nichts weiter sagen aber essieht so aus als ob die KDEPIM-Entwickler einiges an der Ro-bustheit der Software verbessernmuumlssten um ihren Ruf wiederherzustellen Aktivitaumlten sind trotzaller Verbesserungen in den letz-ten Versionen etwas was von

vielen nur als unnuumltze Komplexitaumlt angesehenwird weil sie keinen Nutzen erkennen Ich dach-te dass man mit Aktivitaumlten eine Gruppe vonAnwendungen gemeinsam starten und stoppenkoumlnnte das koumlnnte wirklich nuumltzlich sein Tat-saumlchlich sind Aktivitaumlten die man einmal definierthat immer vorhanden Man kann sie zwar stop-pen aber ihre Anwendungen laufen weiter Spei-cherplatz laumlsst sich so offenbar nicht sparen Wel-chen Nutzen aber haben sie dann den man mitvirtuellen Desktops nicht erzielen koumlnnte Leidersind derzeit Menuumlpunkte und Optionen zu Aktivi-taumlten uumlberall in Plasma vorhanden angefangenmit dem Button oben rechts auf dem Desktopder sich nicht entfernen laumlsst Es sollte eine Moumlg-lichkeit geben alle Optionen auszublenden

Ein weiteres Problem werden wohl viele Benut-zer schon erlebt haben die sich an einem frischinstallierten KDE einloggen wollten Man kommtnicht weit der Desktop stuumlrzt einfach ab DerGrund ist der dass standardmaumlszligig zahlreiche Ef-fekte eingeschaltet sind und je nach Hardwareund Grafiktreiber kann da Vieles schiefgehenDie Loumlsung besteht darin sich im bdquoabgesichertenModusldquo einzuloggen und die Effekte abzuschal-ten Korrekt waumlre alle Effekte standardmaumlszligig ab-zuschalten so wie es beispielsweise Suse LinuxEnterprise macht Wenn ein Benutzer Effekte ak-tiviert dann auf eigenes Risiko und wenn daseinen Absturz zur Folge hat sollte ihm dann klarsein woran es lag

Multimedia im Browser und DesktopWegen der Softwarepatente in den USA kannFedora ebenso wie die meisten anderen Dis-tributionen nur wenige Medienformate abspie-len da es viele benoumltigte Codecs nicht mitliefernkann Wenn man versucht eine MP3- oder Vi-deodatei abzuspielen dann bieten die gaumlngigenPlayer aber die Option an uumlber die Paketverwal-tung nach passenden Plug-ins zu suchen

Damit die Suche in der Paketverwaltung Aus-sicht auf Erfolg hat muss man vorher die zusaumltz-lichen Repositories von RPM Fusion eintragenDas muss man wissen oder durch Suchen her-ausfinden Die Repositories kann man eintragenindem man die Webseite von RPM Fusion [15]besucht Von dieser kann man Pakete installie-ren die die Repositories hinzufuumlgen Dies gilt fuumlrGNOME wie fuumlr KDE

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 9

DISTRIBUTION

Nach dieser Vorbereitung sollten die Player un-ter GNOME und KDE in der Lage sein die be-noumltigten Plug-ins selbsttaumltig zu installieren Merk-wuumlrdigerweise hat Totem aber ein Problem wennman ausgerechnet mit der Suche nach einemMP3-Plug-in anfaumlngt und noch keine Codecs in-stalliert sind ndash diese Suche schlaumlgt fehl Bei Vi-deoformaten funktioniert es aber Am schnellstenund einfachsten ist allerdings eine manuelle In-stallation der GStreamer-Plugins insbesonderegstreamer-ugly und gstreamer-ffmpeg Dennwenn man die Plug-ins von Totem installierenlaumlsst treten wie schon in der Vorversion eineReihe von Merkwuumlrdigkeiten auf

1 Nach der Installation muss Totem neu gestar-tet werden sonst sieht er die neuen Plug-insnicht

2 Das Spiel mit Suchen und Installieren mussggf mehrmals wiederholt werden denn dasProgramm scheint unfaumlhig zu sein alle benouml-tigten Codecs auf einmal zu ermitteln

3 Zur Installation ist die Eingabe des eige-nen Passworts noumltig Trotz korrekter Einga-be schreibt die Dialogbox jedoch bdquoEntschuldi-gung das hat nicht geklapptldquo nur um dannfortzufahren und die Pakete korrekt zu instal-lieren

Totem erscheint bei Installation von DVDs auchunter KDE als Standard-Medienplayer auch fuumlrMP3-Dateien Das haumlngt wohl damit zusam-men dass bei der KDE-Installation eine Men-ge GNOME-Pakete mitinstalliert werden Dragon-player ist als Alternative installiert

Die Flash-Situation in den Browsern bleibt mittel-maumlszligig Ohne den Adobe Flash Player geht nichtallzuviel Nichts hat sich bei Gnash getan dasbei Version 0810 blieb Es kann viele Flash-Videos im Web nicht abspielen Die freie Alterna-tive Lightspark ist jetzt in Version 071 in den Re-positories von RPM Fusion enthalten und kannvermutlich einige Videos mehr abspielen Kon-queror der Standard-Browser unter KDE stuumlrz-te beim Versuch ein Youtube-Video abzuspielenab Offensichtlich verwendet man besser einenanderen Browser unter KDE

Bei der Installation des Adobe Flash Playerskann man aumlhnlich vorgehen wie bei RPM Fu-sion Zunaumlchst laumldt man von Adobe eine RPM-Datei herunter die das Repository anlegt Dannkann man uumlber die Paketverwaltung das eigentli-che Plug-in installieren Die Alternative zu Flashdas WebM-Format sollte in Firefox seit Version 4kaum Probleme bereiten

Paketverwaltung und UpdatesWenig hat sich bei der Paketverwaltung getan In-stallation bzw Deinstallation und das Aktualisie-ren von Paketen sind weiterhin separate Anwen-dungen die aber auch von der Paketverwaltungaus aufgerufen werden koumlnnen Sie funktionie-ren normalerweise reibungslos und die Updateswenn sie auch zahlreich sind sind dank Delta-RPMs oft erstaunlich klein und schnell installiert

Die Paketverwaltung baut unter GNOME undKDE grundsaumltzlich auf PackageKit auf Die Pro-gramme ndash gpk-application 361 bzw apper 080

Installation von Updates in KDE von derBenachrichtigung aus

ndash sind komfortabel genug Etwas Vergleichba-res wie das Software Center von Ubuntu bietetFedora jedoch nicht

Etwas merkwuumlrdig ist dass man beim erstenUpdate gefragt wird ob man der Paketquel-le vertraut Eigentlich sollten die Schluumlssel derStandard-Repositories bereits vorinstalliert seinund Fedora sollte seinen eigenen Quellen auto-matisch vertrauen

FazitFedora 18 wurde von einigen Benutzern darun-ter sogar Alan Cox als die bisher schlechtesteVersion bezeichnet und das mag sogar zutreffenAllerdings muss man das relativieren Die Kritik

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 10

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 2: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

MAGAZIN

Editorial

Steam fuumlr LinuxMitte Februar war es soweit Steam fuumlr Linux wur-de nach einer ausgiebigen Beta-Phase fuumlr alleLinux-Nutzer freigegeben [1] Wobei bdquoalleldquo viel-leicht nicht alle meint da offiziell erst einmalnur Ubuntu unterstuumltzt wird Als vermutlich meistgenutzte Distribution ist dies aber natuumlrlich einverstaumlndlicher Schritt fuumlr Valve der Firma hinterSteam

Als Lockangebot gab es die ersten Tage zahlrei-che Spieletitel zum verguumlnstigten Preis mit 50 oder gar 75 Rabatt Dabei vertreten warennicht nur Indie-Titel wie Dungeons of DredmorOsmos World of Goo Aquaria oder Bastion wieder eine oder andere vielleicht denken moumlchteValve hat einige ihrer eigenen Triple-A-Spiele por-tiert und bietet diese fuumlr Linux an Darunter u aSerious Sam 3 Team Fortress 2 Half-Life oderCounter Strike Source

Natuumlrlich sollte man immer im Hinterkopf behal-ten dass die Nutzungsbestimmungen von Steamalles andere als kundenfreundlich sind Und esgab auch schon des oumlfteren Meldungen dassSpieler nicht mehr auf ihre teuer gekauften Spie-le zugreifen konnten weil Steam den Zuganggesperrt hat Ein Wiederverkauf ist voumlllig ausge-schlossen

Dennoch bietet Steam fuumlr Linux eine gute Chan-ce dass viele Nutzer die Windows als Zweit-OS zum Spielen aufgespielt haben sich komplett

von Microsoft loumlsen Mit Windows 8 setzt Micro-soft alles daran Windows-Nutzer zu vergraulenund da wird es den einen oder anderen sicherlichfreuen dass es Steam auch fuumlr Linux gibt

Im Endeffekt muss jeder selbst entscheiden ober das Angebot wahrnimmt Mit den HumbleBundles [2] gibt es fuumlr den Spaszlig zwischendurcheine gute Alternative die einen auch so lange ge-nug beschaumlftigen koumlnnen

Ende des sechsten Programmierwett-bewerbs ndash jetzt wirklichDer sechste freiesMagazin-Programmierwettbe-werb [3] nahm in den letzten Monaten immermal wieder Raum im Editorial ein Jetzt ist aberSchluss damit denn der Wettbewerb ist zu En-de und die Auswertung wurde durchgefuumlhrt DieGewinner Daten und auch ein paar Hintergrund-informationen koumlnnen Sie in einem Extra-Artikelauf Seite 43 nachlesen

Und nun wuumlnschen wir Ihnen viel Spaszlig beim Le-sen der neuen Ausgabe

Ihre freiesMagazin-Redaktion

LINKS

[1] httpwwwpro-linuxdenews119455steam-fuer-linux-freigegebenhtml

[2] httpwwwhumblebundlecom[3] httpwwwfreiesmagazindesechster_

programmierwettbewerb

InhaltLinux allgemeinFedora 18 S 3Der Februar im Kernelruumlckblick S 12

AnleitungenFirefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II

S 15

Einfuumlhrung in Docbook S 18Eine kurze Einfuumlhrung in Hadoop S 23Laufzeitanalyse mit gprof S 27

SoftwareSubsurface ndash Tauchen unter Linux S 30Foto-Kartengenerator S 34

CommunityRezension PC-Netzwerke Das umfassen-de Handbuch (6 Auflage)

S 39

Rezension Die Kunst des Vertrauens S 41

MagazinEditorial S 2Die Gewinner des sechsten Programmier-wettbewerbs

S 43

Leserbriefe S 46Veranstaltungen S 48Vorschau S 48Konventionen S 48Impressum S 49

Das Editorial kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 2

DISTRIBUTION

Fedora 18 von Hans-Joachim Baader

D as neu erschienene Fedora 18 will denBenutzern wie jedes halbe Jahr dieneueste freie Software und die neues-

ten Technologien bringen Der Artikel zeigtdie Neuerungen und was es dabei zu beach-ten gibt

Redaktioneller Hinweis Der Artikel bdquoFedora 18ldquoerschien erstmals bei Pro-Linux [1]

UumlberblickFedora 18 [2] enthaumllt eine Vielzahl von Neuerun-gen von denen die wichtigsten im Laufe des Ar-tikels erwaumlhnt und soweit moumlglich auch auspro-biert werden Vorrangig wird auf die Desktopum-gebungen GNOME und KDE eingegangen

Wie immer sei angemerkt dass es sich hiernicht um einen Test der Hardwarekompatibilitaumlthandelt Es ist bekannt dass Linux mehr Hard-ware unterstuumltzt als jedes andere Betriebssys-tem und das uumlberwiegend bereits im Standard-Lieferumfang Ein Test spezifischer Hardware wauml-re zu viel Aufwand fuumlr wenig Nutzen Falls manauf Probleme mit der Hardware stoumlszligt stehen dieWebseiten von Fedora zur Loumlsung bereit

Da eine Erprobung auf realer Hardware nicht dasZiel des Artikels ist werden fuumlr den Artikel zweiidentische virtuelle Maschinen 64 Bit unter KVMmit jeweils 1 GB RAM verwendet Auszligerdem wur-de ein Netbook mit 32-Bit-CPU aber funktionie-render Grafikbeschleunigung von Fedora 17 auf18 aktualisiert

Bootscreen der DVD

InstallationFedora kann von DVDs Live-CDs oder minimalen Bootme-dien installiert werden Natuumlr-lich kann man aus einem ISO-Image auch ein USB-Mediumfuumlr die Installation erstellenDie Live-CDs in den Vari-anten GNOME KDE LXDEund Xfce sind aufgrund ih-res geringen Umfangs eher ei-ne Notloumlsung fuumlr die Installa-tion denn es fehlen dann un-ter anderem LibreOffice undUumlbersetzungen Zwar erfolgtdie Installation binnen Minu-ten da hierbei offenbar mehroder weniger nur ein Abbildder CD auf die Platte geschrie-ben wird aber fuumlr normalevollstaumlndige Installationen sind die DVD oder dasminimale Image vorzuziehen bei dem die eigent-liche Distribution uumlber das Netz installiert wird

Die Installation von Fedora erfordert mindestens786 MB RAM wie schon in Version 17 (siehebdquoFedora 17ldquo freiesMagazin 082012 [3] Fuumlr denBetrieb werden mehr als 1 GB empfohlen wasaber allenfalls fuumlr ziemlich alte Rechner zu einemProblem wird

In Fedora 18 wurde das InstallationsprogrammAnaconda gruumlndlich uumlberarbeitet und seine

Oberflaumlche voumlllig neu geschrieben [4] Dies warder Hauptgrund fuumlr die auszligerordentliche Verzouml-gerung der Freigabe von Fedora 18 um uumlber zweiMonate Die neue Oberflaumlche soll einfacher zubenutzen sein aber dennoch alle Optionen bie-ten wenn sie benoumltigt werden

Bei der Sprachauswahl sollte man gleich dieOption bdquoSet keyboardldquo aktivieren sonst mussman die Tastatur spaumlter manuell konfigurierenDanach gelangt man in der neuen Installa-tion zu einer Uumlbersichtsseite Warum hier alleTexte in Groszligbuchstaben geschrieben wurden

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 3

DISTRIBUTION

Zusammenfassung der Installation

wissen wohl nur die Entwickler Auf der Seite sindalle Punkte die vom Benutzer noch bearbeitetwerden muumlssen mit einem gelben bdquoWarndreieckldquomarkiert ndash als ob es ein Fehler des Benutzerssei dass diese Punkte noch offen sind

Als erstes muss man das Installationsziel aus-waumlhlen Die erkannten Festplatten werden durchein Icon angezeigt das allerdings die grundle-gende Information vermissen laumlsst um welchesGeraumlt (devsda usw) es sich handelt Stattdes-sen zeigen die Entwickler den Modellnamen desGeraumltes an Hier gibt es ein schwerwiegendesProblem Hat man zwei oder mehr Festplatten

desselben Modells ver-baut wie soll man sieunterscheiden Ein Merk-mal waumlre der Geraumltena-me ein anderes die Seri-ennummer ndash beides fehltjedoch Wenn man plantein RAID-System einzu-richten mag das ver-schmerzbar sein in ande-ren Faumlllen besteht jedochdie Gefahr dass man diefalschen Partitionen uumlber-schreibt Bei genauererPruumlfung stellt sich her-aus [5] dass die Entwick-ler die Platten auch in derfalschen Reihenfolge an-zeigen was Fehler gera-dezu herausfordert

Bevor man die Installation starten kann mussman die Installationsquelle auswaumlhlen Meistmuss man hier nur die Vorgabe bestaumltigen jeden-falls wenn man von der DVD installiert Warumdie explizite Auswahl hier forciert wird obwohlman sie von der Uumlbersichtsseite aus aufrufenkann wenn man sie braucht ist nicht nachvoll-ziehbar

Auch die Software-Auswahl sollte man sich nochansehen Das sollte man sowieso wenn mannicht GNOME sondern eine andere Oberflaumlcheinstallieren will aber es ist auch noumltig haumlufigbenoumltigte Anwendungen wie LibreOffice explizit

auszuwaumlhlen sonst werden sie nicht mit instal-liert und man muss es spaumlter nachholen waszusaumltzlichen Aufwand darstellt Wenn man KDEauswaumlhlt sollte man darauf achten dass auchApper installiert wird ansonsten muss man spauml-ter seine Software-Updates oder zusaumltzliche Pro-gramme von der Kommandozeile aus installie-ren

Nach Angaben der Entwickler ist Anaconda indieser Version noch unvollstaumlndig Jedoch sinddie gewohnten Optionen wie die Verschluumlsse-lung der gesamten Festplatte oder einzelner Par-titionen RAID und LVM vorhanden Auch dasDateisystem Btrfs wird wieder unterstuumltzt sogarmit seinen spezifischen Funktionen wie Subvolu-mes Wer die automatische Partitionierung waumlhlterhaumllt eine LVM-Installation mit einer 500 MBgroszligen boot-Partition und dem Rest als Root-Partition Die Installation verlief im Test unfallfreivon den erwaumlhnten Problemen abgesehen

Wer bereits Fedora 17 installiert hat kann mitdem Programm fedup auf Version 18 aktualisie-ren Uumlblicherweise bezieht man dabei die ca1400 zu aktualisierenden Pakete uumlber das Netzaber auch andere Quellen sind moumlglich Das Up-date funktionierte problemlos allerdings erst imzweiten Anlauf Anhand der Logdatei konnte mansehen was passiert war Das Update schaufeltein mehr als 300 MB groszliges Bootimage nachboot Ist nicht genug Platz vorhanden geht esschief ohne dass der Benutzer informiert wirdDies duumlrfte dem Bugzilla-Fehler 902498 [6] ent-sprechen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 4

DISTRIBUTION

Bootscreen von Fedora 18

Beim ersten Booten des installierten Systemskommt das bekannte Einrichtungsprogramm mitder Moumlglichkeit Benutzer anzulegen

AusstattungDer Kernel in Fedora 18 beruht auf Linux 372Dazu gesellen sich zahlreiche aktualisierte Soft-warepakete Fedora 18 enthaumllt eine neue Ver-sion des NetworkManagers der die Nutzung vonWLAN-Hotspots [7] deutlich erleichtern soll AlsDesktop-Umgebungen stehen in Fedora 18 un-ter anderem KDE SC 49 GNOME 36 Xfce

Erstellung des ersten Benutzers

410 und Sugar 098 zur Verfuumlgung Auszligerdemwurden der GNOME-Fork Cinnamon und derGNOME2-Nachfolger Mate aufgenommen Dievon Red Hat entwickelten Schriften bdquoLiberationFontsldquo kommen in einer neuen Version Avahidie freie MDNS-Implementation wird auf Desk-tops standardmaumlszligig aktiviert

Administratoren finden in Fedora 18 unter ande-rem erstmals die fehlertolerante und skalierbareNoSQL-Datenbank Riak [8] und Samba 4 [9] dasSMB3 und vertrauenswuumlrdige Domaumlnen von Fre-eIPA unterstuumltzt Ein Fedora 18-System soll sich

auch leicht in eine Active Directory- oder FreeIPA-Domaumlne integrieren lassen Auszligerdem sind jetztSystem-Updates offline [10] moumlglich indem Pa-kete die zuvor im Hintergrund heruntergeladenwurden beim Neustart des Systems in einemspeziellen Update-Modus installiert werden be-vor das regulaumlre System startet Dadurch werdeninkonsistente Zustaumlnde vermieden die bei Upda-tes im laufenden System vorkommen koumlnnen

Fuumlr Administratoren ist es auch wichtig zuwissen dass einige Konfigurationsdateien inetcsysconfig nicht mehr verwendet werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 5

DISTRIBUTION

sollen Stattdessen werden andere Dateien inetc benutzt

Einiges hat sich bei der Sicherheit getan Die In-stallation unterstuumltzt UEFI Secure Boot Der Dae-mon rngd der dem Kernel-Zufallsgenerator zu-saumltzliche Entropie zufuumlhren soll wird standard-maumlszligig installiert aber nicht gestartet Mit SELi-nux und virt-sandbox koumlnnen nun auch Dienstein sicheren Sandkaumlsten ausgefuumlhrt werden auchals Root Mit der Bibliothek libseccomp koumlnnenAnwendungen festlegen welche Systemaufrufesie ausfuumlhren wollen Qemu und KVM nutzendies zur Erhoumlhung ihrer Sicherheit Die Verwen-dung von PolicyKit wurde weiter ausgedehnt

Ein neues Kommandozeilenprogramm ssm (Sys-tem Storage Manager [11]) vereinheitlicht die Ver-waltung von Speichergeraumlten gleichguumlltig ob da-bei LVM RAID oder Btrfs zum Einsatz kommenDas Verzeichnis tmp wird als tmpfs im RAM rea-lisiert [12] was sich aber aumlndern laumlsst Aumlndernmuss man es aber nur wenn ein Programm ge-gen die Konventionen verstoumlszligt und groszlige Datei-en in tmp ablegt statt den Systempfad abzufra-gen oder als Fallback vartmp zu verwendenNeu ist FedFS [13] ein Mechanismus mit demman eine konsistente Sicht auf den Dateibaumvon verschiedenen Dateiservern einrichten kannEs ist allerdings noch im Status einer Vorschau

Firewalld [14] wird anstelle von iptables standard-maumlszligig als Firewall eingesetzt Dadurch wird dieFirewall dynamisch und benoumltigt fuumlr Aumlnderungenkeinen Neustart mehr Der Paketmanager DNFist erstmals als Alternative zu YUM verfuumlgbar In

Firewall-Konfiguration

einem kurzen Test arbeitete ermindestens genauso schnell wieYum dem man bekanntlich bis-weilen mehr Geschwindigkeitwuumlnscht und teilweise auch deut-lich schneller Yum besitzt aberwesentlich mehr Funktionen ver-mutlich ist DNF derzeit nur einExtra Systemtap ein umfangrei-ches Trace-System wurde aufVersion 2 aktualisiert auch dasTrace-System LTTng liegt in Ver-sion 20 vor

Fuumlr Entwickler gab es zahlrei-che Updates der Programmier-umgebungen beispielsweise Dund Haskell Unterstuumltzung fuumlr dieProgrammiersprache Clojure kamneu hinzu Perl (516) Python (33) Ruby onRails (32) und PHP wurden aktualisiert DiePower7-Plattform ppc64p7 wird nun unterstuumltztOwncloud ist jetzt in der Distribution enthaltenund Terminals koumlnnen 256 statt nur 8 Farben nut-zen

Auch im Bereich Virtualisierung und Cloud wur-de Fedora 18 erweitert OpenShift Origin ei-ne Platform-as-a-Service-Infrastruktur (PaaS)wurde hinzugefuumlgt Mit Eucalyptus lassen sichprivate Amazon-kompatible Clouds verwaltenDie Plattform OpenStack fuumlr Infrastructure-as-a-Service (IaaS) wurde auf die Version bdquoFolsomldquoaktualisiert die alternative IaaS-Plattform Eu-calyptus auf Version 31 Das Projekt Heat zur

Orchestrierung von Cloud-Anwendungen kamhinzu Virt Live Snapshots machen es moumlglichSchnappschuumlsse von virtuellen Maschinen unterQemu und libvirt zu machen ohne die Gastsys-teme anzuhalten oVirt wurde auf Version 31 ge-bracht und enthaumllt jetzt auch grafische Werkzeu-ge

Fedora 18 startet etwa genauso schnell wie seinVorgaumlnger Wie immer ist SELinux eingebundenund aktiviert Als normaler Benutzer merkt manuumlberhaupt nichts davon solange die Konfigurati-on korrekt ist In Fedora 18 wie auch in der Vor-version trat kein sichtbares Problem im Zusam-menhang mit SELinux auf Fuumlr den Fall dass einProblem auftritt sei es nach der Installation von

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 6

DISTRIBUTION

zusaumltzlicher Software oder anderen Aumlnderungensteht ein Diagnosewerkzeug zur Verfuumlgung

KDE benoumltigt in Fedora 18 direkt nach dem Startmit einem geoumlffneten Terminal-Fenster etwa 420MB RAM Gnome dagegen hat sich auf 470MB aufgeblaumlht hauptsaumlchlich durch die GNOME-Shell Bei der Geschwindigkeit laumlsst sich keinnennenswerter Unterschied zwischen den Desk-tops feststellen sofern genug RAM vorhanden istDie Angaben zum Speicherverbrauch sind nurals Anhaltswerte zu sehen die sich je nach Hard-ware und Messzeitpunkt erheblich unterscheidenkoumlnnen

GNOMEGNOME 36 ist der Standard-Desktop von Fedo-ra 18 wenn man nicht ausdruumlcklich KDE Xfce

Der Login-Bildschirm von GNOME

oder anderes auswaumlhlt Gegenuumlber GNOME 34ist der Menuumlpunkt Ausschalten anstelle des alsnutzlos kritisierten Suspendieren zuruumlckgekehrtDie Aktivitaumltenuumlbersicht der GNOME-Shell be-sitzt nun einen Gitter-Button in der Startleiste(Dash) mit dem man angeblich schnell zu ein-zelnen Anwendungen wechseln kann Schnellist daran allerdings nichts weil man dennochmeistens nach der Anwendung suchen mussDie Eingabe von Suchbegriffen soll durch dasHervorheben der Suchleiste vereinfacht werden

Das Sperren des Bildschirms folgt nun demParadigma einer Jalousie die vor dem Bild-schirm heruntergezogen wird und wurde direktin die GNOME-Shell eingebaut Der gesperrteBildschirm zeigt eine groszlige Uhr Anpassungs-moumlglichkeiten fehlen Der gesperrte Bildschirm

erlaubt aber auch das Anhalten undAumlndern der Lautstaumlrke falls Audioabgespielt wird Das kann man zuRecht kritisch sehen Uumlberdies wer-den auch Benachrichtigungen einge-blendet was allerdings abschaltbar istDoch es ist paradox dass ausgerech-net eine Funktion bei der es keiner Op-tion bedarf ndash die Privatsphaumlre gebietetes dass keinerlei Benachrichtigungenin Abwesenheit des Benutzers ange-zeigt werden ndash eine Option besitzt undauch noch die falsche Standardeinstel-lung hat waumlhrend das GNOME-Teamsonst jegliche individuellen Einstellun-gen verweigert jedenfalls in der grafi-schen Oberflaumlche

Eine der wichtigsten Neuerungen ist ferner dieUumlberarbeitung der Benachrichtigungen Fruumlherwurden Benachrichtigungen am oberen Bild-schirmrand unter der Systemleiste eingeblendetnun haben sie eine eigene Leiste am unterenBildschirmrand erhalten die aber nur eingeblen-det wird wenn man mit der Maus fuumlr einen Mo-ment an den unteren Bildschirmrand faumlhrt Wenndie Leiste eingeblendet wird uumlberlappt sie sichnicht mit den Bildschirminhalten sondern schiebtdiese nach oben Die Elemente in der Leiste wur-den groumlszliger klarer und verschieben sich nichtDie Benachrichtigungen selbst koumlnnen geschlos-sen werden und einige davon bieten die Moumlg-lichkeit direkt auf sie zu reagieren beispielswei-se durch Eingabe einer Antwort in ein Instant-Messaging-System Wenn man mit einer Anwen-dung im Vollbildmodus arbeitet oder ein Spielspielt werden nur wichtige Nachrichten ange-zeigt die anderen werden erst spaumlter praumlsentiertWie sich diese Aumlnderung in der Praxis bewaumlhrtkann dieser Test nicht aufzeigen

Der Standard-Webbrowser unter GNOME istFirefox 180 nicht der mit GNOME mitgelie-ferte Der Dateimanager Files ehemals Nauti-lus erhielt eine stark verbesserte Suchfunktionleichten Zugriff auf kuumlrzlich benutzte Dateienverbesserte Werkzeug- und Seitenleisten bes-sere Menuumlorganisation und Optionen zum Ver-schieben oder Kopieren an einen ausgewaumlhl-ten Ort Allerdings wurden auch Funktionen ent-fernt die von einigen Benutzern geschaumltzt wur-den Der Webbrowser Web erhielt eine Uumlbersichtwie sie auch andere Browser bieten und einen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 7

DISTRIBUTION

Desktop von GNOME 36 mit Anwendungen

verbesserten Vollbildmodus Weitere erwaumlhnens-werte Verbesserungen sind die vollstaumlndige Inte-gration von Funktionen zur Barrierefreiheit alsozur Unterstuumltzung von Anwendern die verschie-dene Arten von Behinderungen aufweisen unddie Integration von alternativen Eingabemetho-den wie sie zur Eingabe vieler nichteuropaumlischerSchriften benoumltigt werden

Die GNOME-Shell kann dank Software-Rendering auf jeder Hardware laufen derFallback-Modus steht optional aber noch zurVerfuumlgung Im Gegensatz zu Unity unter Ubuntu1210 ist das Software-Rendering aber einiger-maszligen schnell und durchaus noch benutzbardoch beim Abspielen von Videos versagt es Dasglobale Menuuml fuumlr Anwendungen ist weiterhinnicht mit der Tastatur erreichbar und Tasten-kuumlrzel fuumlr die Menuumlpunkte fehlen Weiter fehltes an Moumlglichkeiten GNOME nach eigenen

Anwendungsuumlbersicht in der GNOME-Shell

Vorstellungen zu konfigurieren Zum Gluumlck ist esmoumlglich uumlber Erweiterungen der GNOME-Shelleiniges zu aumlndern und einige dieser Erweiterun-gen sind uumlber die Paketverwaltung verfuumlgbar

Die neue Anwendung Boxes enttaumluscht durcheinen gravierenden Mangel an Einstellungen Vir-tuelle Maschinen sind komplexe Gebilde mit vie-len Optionen da koumlnnen die wenigen Optionendie Boxes bietet nur einige voumlllig anspruchslo-se Faumllle abdecken Aumlhnlich primitiv ist die Doku-mentenverwaltung die zudem nutzlos ist wennman nicht bereit ist Dokumente in irgendwelcheClouds zu stellen

KDEKDE ist in Version 49 enthalten aber jetztnur noch ein bdquoSpinldquo von Fedora Es gibt ei-ne KDE-Live-CD aber keine Installations-DVDmehr Zur Installation verwendet man jetzt die

Desktop von KDE 49

Fedora-Installations-DVD und bei der Software-Auswahl waumlhlt man KDE sowie die benoumltigtenAnwendungen aus Den Umfang der installiertenKDE-Anwendungen bestimmt man damit selbst

KDE 49 setzt noch mehr auf Qt Quick Insge-samt halten sich die groumlszligeren Aumlnderungen ge-genuumlber KDE 48 in Grenzen Eine Reihe vonVerbesserungen gab es im Dateimanager Dol-phin und in der Terminal-Emulation Konsole Vie-le weitere Anwendungen und Spiele bekamenkleinere neue Funktionen und Verbesserungen

Die Aktivitaumlten wurden staumlrker mit Dateien Fens-tern und anderen Ressourcen integriert Es solljetzt leichter sein Dateien und Fenster einer Ak-tivitaumlt zuzuordnen und so die eigenen Arbeitsflauml-chen passender zu organisieren Die Ordneran-sicht kann nun Dateien anzeigen die zu einer Ak-tivitaumlt gehoumlren und es so erleichtern die Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 8

DISTRIBUTION

Desktop von KDE 49 mit Anwendungen

in sinnvolle Zusammenhaumlnge zu stellen PrivateAktivitaumlten koumlnnen verschluumlsselt werden DerWindow-Manager KWin erhielt Aumlnderungen sodass man Fensterregeln fuumlr Aktivitaumlten definierenkann

KDE ist im Prinzip der exakte Gegenpol zuGNOME Hier sind die traditionellen Bedienele-mente unbeschaumldigt erhalten und es gibt Einstel-lungsmoumlglichkeiten bis zum kleinsten Detail DiePlasma-Oberflaumlche fuumlr Mobilgeraumlte ist vollstaumln-dig separat von der Desktop-Variante und kanndiese daher auch nicht beeintraumlchtigen Die An-wendungen bieten einen groszligen Funktionsum-fang und sind konfigurier- und erweiterbar Natuumlr-lich gibt es bisweilen andere freie Anwendungen

die den KDE-Anwendungen uumlber-legen sind oder von einigen Be-nutzern bevorzugt werden aberviele KDE-Anwendungen sind gutund nuumltzlich

Die Kritikpunkte an KDE sind die-selben wie eh und je KDEPIMwird des oumlfteren kritisiert beson-ders KMail Da ich selbst noch nieKMail-Benutzer war kann ich da-zu nichts weiter sagen aber essieht so aus als ob die KDEPIM-Entwickler einiges an der Ro-bustheit der Software verbessernmuumlssten um ihren Ruf wiederherzustellen Aktivitaumlten sind trotzaller Verbesserungen in den letz-ten Versionen etwas was von

vielen nur als unnuumltze Komplexitaumlt angesehenwird weil sie keinen Nutzen erkennen Ich dach-te dass man mit Aktivitaumlten eine Gruppe vonAnwendungen gemeinsam starten und stoppenkoumlnnte das koumlnnte wirklich nuumltzlich sein Tat-saumlchlich sind Aktivitaumlten die man einmal definierthat immer vorhanden Man kann sie zwar stop-pen aber ihre Anwendungen laufen weiter Spei-cherplatz laumlsst sich so offenbar nicht sparen Wel-chen Nutzen aber haben sie dann den man mitvirtuellen Desktops nicht erzielen koumlnnte Leidersind derzeit Menuumlpunkte und Optionen zu Aktivi-taumlten uumlberall in Plasma vorhanden angefangenmit dem Button oben rechts auf dem Desktopder sich nicht entfernen laumlsst Es sollte eine Moumlg-lichkeit geben alle Optionen auszublenden

Ein weiteres Problem werden wohl viele Benut-zer schon erlebt haben die sich an einem frischinstallierten KDE einloggen wollten Man kommtnicht weit der Desktop stuumlrzt einfach ab DerGrund ist der dass standardmaumlszligig zahlreiche Ef-fekte eingeschaltet sind und je nach Hardwareund Grafiktreiber kann da Vieles schiefgehenDie Loumlsung besteht darin sich im bdquoabgesichertenModusldquo einzuloggen und die Effekte abzuschal-ten Korrekt waumlre alle Effekte standardmaumlszligig ab-zuschalten so wie es beispielsweise Suse LinuxEnterprise macht Wenn ein Benutzer Effekte ak-tiviert dann auf eigenes Risiko und wenn daseinen Absturz zur Folge hat sollte ihm dann klarsein woran es lag

Multimedia im Browser und DesktopWegen der Softwarepatente in den USA kannFedora ebenso wie die meisten anderen Dis-tributionen nur wenige Medienformate abspie-len da es viele benoumltigte Codecs nicht mitliefernkann Wenn man versucht eine MP3- oder Vi-deodatei abzuspielen dann bieten die gaumlngigenPlayer aber die Option an uumlber die Paketverwal-tung nach passenden Plug-ins zu suchen

Damit die Suche in der Paketverwaltung Aus-sicht auf Erfolg hat muss man vorher die zusaumltz-lichen Repositories von RPM Fusion eintragenDas muss man wissen oder durch Suchen her-ausfinden Die Repositories kann man eintragenindem man die Webseite von RPM Fusion [15]besucht Von dieser kann man Pakete installie-ren die die Repositories hinzufuumlgen Dies gilt fuumlrGNOME wie fuumlr KDE

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 9

DISTRIBUTION

Nach dieser Vorbereitung sollten die Player un-ter GNOME und KDE in der Lage sein die be-noumltigten Plug-ins selbsttaumltig zu installieren Merk-wuumlrdigerweise hat Totem aber ein Problem wennman ausgerechnet mit der Suche nach einemMP3-Plug-in anfaumlngt und noch keine Codecs in-stalliert sind ndash diese Suche schlaumlgt fehl Bei Vi-deoformaten funktioniert es aber Am schnellstenund einfachsten ist allerdings eine manuelle In-stallation der GStreamer-Plugins insbesonderegstreamer-ugly und gstreamer-ffmpeg Dennwenn man die Plug-ins von Totem installierenlaumlsst treten wie schon in der Vorversion eineReihe von Merkwuumlrdigkeiten auf

1 Nach der Installation muss Totem neu gestar-tet werden sonst sieht er die neuen Plug-insnicht

2 Das Spiel mit Suchen und Installieren mussggf mehrmals wiederholt werden denn dasProgramm scheint unfaumlhig zu sein alle benouml-tigten Codecs auf einmal zu ermitteln

3 Zur Installation ist die Eingabe des eige-nen Passworts noumltig Trotz korrekter Einga-be schreibt die Dialogbox jedoch bdquoEntschuldi-gung das hat nicht geklapptldquo nur um dannfortzufahren und die Pakete korrekt zu instal-lieren

Totem erscheint bei Installation von DVDs auchunter KDE als Standard-Medienplayer auch fuumlrMP3-Dateien Das haumlngt wohl damit zusam-men dass bei der KDE-Installation eine Men-ge GNOME-Pakete mitinstalliert werden Dragon-player ist als Alternative installiert

Die Flash-Situation in den Browsern bleibt mittel-maumlszligig Ohne den Adobe Flash Player geht nichtallzuviel Nichts hat sich bei Gnash getan dasbei Version 0810 blieb Es kann viele Flash-Videos im Web nicht abspielen Die freie Alterna-tive Lightspark ist jetzt in Version 071 in den Re-positories von RPM Fusion enthalten und kannvermutlich einige Videos mehr abspielen Kon-queror der Standard-Browser unter KDE stuumlrz-te beim Versuch ein Youtube-Video abzuspielenab Offensichtlich verwendet man besser einenanderen Browser unter KDE

Bei der Installation des Adobe Flash Playerskann man aumlhnlich vorgehen wie bei RPM Fu-sion Zunaumlchst laumldt man von Adobe eine RPM-Datei herunter die das Repository anlegt Dannkann man uumlber die Paketverwaltung das eigentli-che Plug-in installieren Die Alternative zu Flashdas WebM-Format sollte in Firefox seit Version 4kaum Probleme bereiten

Paketverwaltung und UpdatesWenig hat sich bei der Paketverwaltung getan In-stallation bzw Deinstallation und das Aktualisie-ren von Paketen sind weiterhin separate Anwen-dungen die aber auch von der Paketverwaltungaus aufgerufen werden koumlnnen Sie funktionie-ren normalerweise reibungslos und die Updateswenn sie auch zahlreich sind sind dank Delta-RPMs oft erstaunlich klein und schnell installiert

Die Paketverwaltung baut unter GNOME undKDE grundsaumltzlich auf PackageKit auf Die Pro-gramme ndash gpk-application 361 bzw apper 080

Installation von Updates in KDE von derBenachrichtigung aus

ndash sind komfortabel genug Etwas Vergleichba-res wie das Software Center von Ubuntu bietetFedora jedoch nicht

Etwas merkwuumlrdig ist dass man beim erstenUpdate gefragt wird ob man der Paketquel-le vertraut Eigentlich sollten die Schluumlssel derStandard-Repositories bereits vorinstalliert seinund Fedora sollte seinen eigenen Quellen auto-matisch vertrauen

FazitFedora 18 wurde von einigen Benutzern darun-ter sogar Alan Cox als die bisher schlechtesteVersion bezeichnet und das mag sogar zutreffenAllerdings muss man das relativieren Die Kritik

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 10

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 3: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DISTRIBUTION

Fedora 18 von Hans-Joachim Baader

D as neu erschienene Fedora 18 will denBenutzern wie jedes halbe Jahr dieneueste freie Software und die neues-

ten Technologien bringen Der Artikel zeigtdie Neuerungen und was es dabei zu beach-ten gibt

Redaktioneller Hinweis Der Artikel bdquoFedora 18ldquoerschien erstmals bei Pro-Linux [1]

UumlberblickFedora 18 [2] enthaumllt eine Vielzahl von Neuerun-gen von denen die wichtigsten im Laufe des Ar-tikels erwaumlhnt und soweit moumlglich auch auspro-biert werden Vorrangig wird auf die Desktopum-gebungen GNOME und KDE eingegangen

Wie immer sei angemerkt dass es sich hiernicht um einen Test der Hardwarekompatibilitaumlthandelt Es ist bekannt dass Linux mehr Hard-ware unterstuumltzt als jedes andere Betriebssys-tem und das uumlberwiegend bereits im Standard-Lieferumfang Ein Test spezifischer Hardware wauml-re zu viel Aufwand fuumlr wenig Nutzen Falls manauf Probleme mit der Hardware stoumlszligt stehen dieWebseiten von Fedora zur Loumlsung bereit

Da eine Erprobung auf realer Hardware nicht dasZiel des Artikels ist werden fuumlr den Artikel zweiidentische virtuelle Maschinen 64 Bit unter KVMmit jeweils 1 GB RAM verwendet Auszligerdem wur-de ein Netbook mit 32-Bit-CPU aber funktionie-render Grafikbeschleunigung von Fedora 17 auf18 aktualisiert

Bootscreen der DVD

InstallationFedora kann von DVDs Live-CDs oder minimalen Bootme-dien installiert werden Natuumlr-lich kann man aus einem ISO-Image auch ein USB-Mediumfuumlr die Installation erstellenDie Live-CDs in den Vari-anten GNOME KDE LXDEund Xfce sind aufgrund ih-res geringen Umfangs eher ei-ne Notloumlsung fuumlr die Installa-tion denn es fehlen dann un-ter anderem LibreOffice undUumlbersetzungen Zwar erfolgtdie Installation binnen Minu-ten da hierbei offenbar mehroder weniger nur ein Abbildder CD auf die Platte geschrie-ben wird aber fuumlr normalevollstaumlndige Installationen sind die DVD oder dasminimale Image vorzuziehen bei dem die eigent-liche Distribution uumlber das Netz installiert wird

Die Installation von Fedora erfordert mindestens786 MB RAM wie schon in Version 17 (siehebdquoFedora 17ldquo freiesMagazin 082012 [3] Fuumlr denBetrieb werden mehr als 1 GB empfohlen wasaber allenfalls fuumlr ziemlich alte Rechner zu einemProblem wird

In Fedora 18 wurde das InstallationsprogrammAnaconda gruumlndlich uumlberarbeitet und seine

Oberflaumlche voumlllig neu geschrieben [4] Dies warder Hauptgrund fuumlr die auszligerordentliche Verzouml-gerung der Freigabe von Fedora 18 um uumlber zweiMonate Die neue Oberflaumlche soll einfacher zubenutzen sein aber dennoch alle Optionen bie-ten wenn sie benoumltigt werden

Bei der Sprachauswahl sollte man gleich dieOption bdquoSet keyboardldquo aktivieren sonst mussman die Tastatur spaumlter manuell konfigurierenDanach gelangt man in der neuen Installa-tion zu einer Uumlbersichtsseite Warum hier alleTexte in Groszligbuchstaben geschrieben wurden

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 3

DISTRIBUTION

Zusammenfassung der Installation

wissen wohl nur die Entwickler Auf der Seite sindalle Punkte die vom Benutzer noch bearbeitetwerden muumlssen mit einem gelben bdquoWarndreieckldquomarkiert ndash als ob es ein Fehler des Benutzerssei dass diese Punkte noch offen sind

Als erstes muss man das Installationsziel aus-waumlhlen Die erkannten Festplatten werden durchein Icon angezeigt das allerdings die grundle-gende Information vermissen laumlsst um welchesGeraumlt (devsda usw) es sich handelt Stattdes-sen zeigen die Entwickler den Modellnamen desGeraumltes an Hier gibt es ein schwerwiegendesProblem Hat man zwei oder mehr Festplatten

desselben Modells ver-baut wie soll man sieunterscheiden Ein Merk-mal waumlre der Geraumltena-me ein anderes die Seri-ennummer ndash beides fehltjedoch Wenn man plantein RAID-System einzu-richten mag das ver-schmerzbar sein in ande-ren Faumlllen besteht jedochdie Gefahr dass man diefalschen Partitionen uumlber-schreibt Bei genauererPruumlfung stellt sich her-aus [5] dass die Entwick-ler die Platten auch in derfalschen Reihenfolge an-zeigen was Fehler gera-dezu herausfordert

Bevor man die Installation starten kann mussman die Installationsquelle auswaumlhlen Meistmuss man hier nur die Vorgabe bestaumltigen jeden-falls wenn man von der DVD installiert Warumdie explizite Auswahl hier forciert wird obwohlman sie von der Uumlbersichtsseite aus aufrufenkann wenn man sie braucht ist nicht nachvoll-ziehbar

Auch die Software-Auswahl sollte man sich nochansehen Das sollte man sowieso wenn mannicht GNOME sondern eine andere Oberflaumlcheinstallieren will aber es ist auch noumltig haumlufigbenoumltigte Anwendungen wie LibreOffice explizit

auszuwaumlhlen sonst werden sie nicht mit instal-liert und man muss es spaumlter nachholen waszusaumltzlichen Aufwand darstellt Wenn man KDEauswaumlhlt sollte man darauf achten dass auchApper installiert wird ansonsten muss man spauml-ter seine Software-Updates oder zusaumltzliche Pro-gramme von der Kommandozeile aus installie-ren

Nach Angaben der Entwickler ist Anaconda indieser Version noch unvollstaumlndig Jedoch sinddie gewohnten Optionen wie die Verschluumlsse-lung der gesamten Festplatte oder einzelner Par-titionen RAID und LVM vorhanden Auch dasDateisystem Btrfs wird wieder unterstuumltzt sogarmit seinen spezifischen Funktionen wie Subvolu-mes Wer die automatische Partitionierung waumlhlterhaumllt eine LVM-Installation mit einer 500 MBgroszligen boot-Partition und dem Rest als Root-Partition Die Installation verlief im Test unfallfreivon den erwaumlhnten Problemen abgesehen

Wer bereits Fedora 17 installiert hat kann mitdem Programm fedup auf Version 18 aktualisie-ren Uumlblicherweise bezieht man dabei die ca1400 zu aktualisierenden Pakete uumlber das Netzaber auch andere Quellen sind moumlglich Das Up-date funktionierte problemlos allerdings erst imzweiten Anlauf Anhand der Logdatei konnte mansehen was passiert war Das Update schaufeltein mehr als 300 MB groszliges Bootimage nachboot Ist nicht genug Platz vorhanden geht esschief ohne dass der Benutzer informiert wirdDies duumlrfte dem Bugzilla-Fehler 902498 [6] ent-sprechen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 4

DISTRIBUTION

Bootscreen von Fedora 18

Beim ersten Booten des installierten Systemskommt das bekannte Einrichtungsprogramm mitder Moumlglichkeit Benutzer anzulegen

AusstattungDer Kernel in Fedora 18 beruht auf Linux 372Dazu gesellen sich zahlreiche aktualisierte Soft-warepakete Fedora 18 enthaumllt eine neue Ver-sion des NetworkManagers der die Nutzung vonWLAN-Hotspots [7] deutlich erleichtern soll AlsDesktop-Umgebungen stehen in Fedora 18 un-ter anderem KDE SC 49 GNOME 36 Xfce

Erstellung des ersten Benutzers

410 und Sugar 098 zur Verfuumlgung Auszligerdemwurden der GNOME-Fork Cinnamon und derGNOME2-Nachfolger Mate aufgenommen Dievon Red Hat entwickelten Schriften bdquoLiberationFontsldquo kommen in einer neuen Version Avahidie freie MDNS-Implementation wird auf Desk-tops standardmaumlszligig aktiviert

Administratoren finden in Fedora 18 unter ande-rem erstmals die fehlertolerante und skalierbareNoSQL-Datenbank Riak [8] und Samba 4 [9] dasSMB3 und vertrauenswuumlrdige Domaumlnen von Fre-eIPA unterstuumltzt Ein Fedora 18-System soll sich

auch leicht in eine Active Directory- oder FreeIPA-Domaumlne integrieren lassen Auszligerdem sind jetztSystem-Updates offline [10] moumlglich indem Pa-kete die zuvor im Hintergrund heruntergeladenwurden beim Neustart des Systems in einemspeziellen Update-Modus installiert werden be-vor das regulaumlre System startet Dadurch werdeninkonsistente Zustaumlnde vermieden die bei Upda-tes im laufenden System vorkommen koumlnnen

Fuumlr Administratoren ist es auch wichtig zuwissen dass einige Konfigurationsdateien inetcsysconfig nicht mehr verwendet werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 5

DISTRIBUTION

sollen Stattdessen werden andere Dateien inetc benutzt

Einiges hat sich bei der Sicherheit getan Die In-stallation unterstuumltzt UEFI Secure Boot Der Dae-mon rngd der dem Kernel-Zufallsgenerator zu-saumltzliche Entropie zufuumlhren soll wird standard-maumlszligig installiert aber nicht gestartet Mit SELi-nux und virt-sandbox koumlnnen nun auch Dienstein sicheren Sandkaumlsten ausgefuumlhrt werden auchals Root Mit der Bibliothek libseccomp koumlnnenAnwendungen festlegen welche Systemaufrufesie ausfuumlhren wollen Qemu und KVM nutzendies zur Erhoumlhung ihrer Sicherheit Die Verwen-dung von PolicyKit wurde weiter ausgedehnt

Ein neues Kommandozeilenprogramm ssm (Sys-tem Storage Manager [11]) vereinheitlicht die Ver-waltung von Speichergeraumlten gleichguumlltig ob da-bei LVM RAID oder Btrfs zum Einsatz kommenDas Verzeichnis tmp wird als tmpfs im RAM rea-lisiert [12] was sich aber aumlndern laumlsst Aumlndernmuss man es aber nur wenn ein Programm ge-gen die Konventionen verstoumlszligt und groszlige Datei-en in tmp ablegt statt den Systempfad abzufra-gen oder als Fallback vartmp zu verwendenNeu ist FedFS [13] ein Mechanismus mit demman eine konsistente Sicht auf den Dateibaumvon verschiedenen Dateiservern einrichten kannEs ist allerdings noch im Status einer Vorschau

Firewalld [14] wird anstelle von iptables standard-maumlszligig als Firewall eingesetzt Dadurch wird dieFirewall dynamisch und benoumltigt fuumlr Aumlnderungenkeinen Neustart mehr Der Paketmanager DNFist erstmals als Alternative zu YUM verfuumlgbar In

Firewall-Konfiguration

einem kurzen Test arbeitete ermindestens genauso schnell wieYum dem man bekanntlich bis-weilen mehr Geschwindigkeitwuumlnscht und teilweise auch deut-lich schneller Yum besitzt aberwesentlich mehr Funktionen ver-mutlich ist DNF derzeit nur einExtra Systemtap ein umfangrei-ches Trace-System wurde aufVersion 2 aktualisiert auch dasTrace-System LTTng liegt in Ver-sion 20 vor

Fuumlr Entwickler gab es zahlrei-che Updates der Programmier-umgebungen beispielsweise Dund Haskell Unterstuumltzung fuumlr dieProgrammiersprache Clojure kamneu hinzu Perl (516) Python (33) Ruby onRails (32) und PHP wurden aktualisiert DiePower7-Plattform ppc64p7 wird nun unterstuumltztOwncloud ist jetzt in der Distribution enthaltenund Terminals koumlnnen 256 statt nur 8 Farben nut-zen

Auch im Bereich Virtualisierung und Cloud wur-de Fedora 18 erweitert OpenShift Origin ei-ne Platform-as-a-Service-Infrastruktur (PaaS)wurde hinzugefuumlgt Mit Eucalyptus lassen sichprivate Amazon-kompatible Clouds verwaltenDie Plattform OpenStack fuumlr Infrastructure-as-a-Service (IaaS) wurde auf die Version bdquoFolsomldquoaktualisiert die alternative IaaS-Plattform Eu-calyptus auf Version 31 Das Projekt Heat zur

Orchestrierung von Cloud-Anwendungen kamhinzu Virt Live Snapshots machen es moumlglichSchnappschuumlsse von virtuellen Maschinen unterQemu und libvirt zu machen ohne die Gastsys-teme anzuhalten oVirt wurde auf Version 31 ge-bracht und enthaumllt jetzt auch grafische Werkzeu-ge

Fedora 18 startet etwa genauso schnell wie seinVorgaumlnger Wie immer ist SELinux eingebundenund aktiviert Als normaler Benutzer merkt manuumlberhaupt nichts davon solange die Konfigurati-on korrekt ist In Fedora 18 wie auch in der Vor-version trat kein sichtbares Problem im Zusam-menhang mit SELinux auf Fuumlr den Fall dass einProblem auftritt sei es nach der Installation von

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 6

DISTRIBUTION

zusaumltzlicher Software oder anderen Aumlnderungensteht ein Diagnosewerkzeug zur Verfuumlgung

KDE benoumltigt in Fedora 18 direkt nach dem Startmit einem geoumlffneten Terminal-Fenster etwa 420MB RAM Gnome dagegen hat sich auf 470MB aufgeblaumlht hauptsaumlchlich durch die GNOME-Shell Bei der Geschwindigkeit laumlsst sich keinnennenswerter Unterschied zwischen den Desk-tops feststellen sofern genug RAM vorhanden istDie Angaben zum Speicherverbrauch sind nurals Anhaltswerte zu sehen die sich je nach Hard-ware und Messzeitpunkt erheblich unterscheidenkoumlnnen

GNOMEGNOME 36 ist der Standard-Desktop von Fedo-ra 18 wenn man nicht ausdruumlcklich KDE Xfce

Der Login-Bildschirm von GNOME

oder anderes auswaumlhlt Gegenuumlber GNOME 34ist der Menuumlpunkt Ausschalten anstelle des alsnutzlos kritisierten Suspendieren zuruumlckgekehrtDie Aktivitaumltenuumlbersicht der GNOME-Shell be-sitzt nun einen Gitter-Button in der Startleiste(Dash) mit dem man angeblich schnell zu ein-zelnen Anwendungen wechseln kann Schnellist daran allerdings nichts weil man dennochmeistens nach der Anwendung suchen mussDie Eingabe von Suchbegriffen soll durch dasHervorheben der Suchleiste vereinfacht werden

Das Sperren des Bildschirms folgt nun demParadigma einer Jalousie die vor dem Bild-schirm heruntergezogen wird und wurde direktin die GNOME-Shell eingebaut Der gesperrteBildschirm zeigt eine groszlige Uhr Anpassungs-moumlglichkeiten fehlen Der gesperrte Bildschirm

erlaubt aber auch das Anhalten undAumlndern der Lautstaumlrke falls Audioabgespielt wird Das kann man zuRecht kritisch sehen Uumlberdies wer-den auch Benachrichtigungen einge-blendet was allerdings abschaltbar istDoch es ist paradox dass ausgerech-net eine Funktion bei der es keiner Op-tion bedarf ndash die Privatsphaumlre gebietetes dass keinerlei Benachrichtigungenin Abwesenheit des Benutzers ange-zeigt werden ndash eine Option besitzt undauch noch die falsche Standardeinstel-lung hat waumlhrend das GNOME-Teamsonst jegliche individuellen Einstellun-gen verweigert jedenfalls in der grafi-schen Oberflaumlche

Eine der wichtigsten Neuerungen ist ferner dieUumlberarbeitung der Benachrichtigungen Fruumlherwurden Benachrichtigungen am oberen Bild-schirmrand unter der Systemleiste eingeblendetnun haben sie eine eigene Leiste am unterenBildschirmrand erhalten die aber nur eingeblen-det wird wenn man mit der Maus fuumlr einen Mo-ment an den unteren Bildschirmrand faumlhrt Wenndie Leiste eingeblendet wird uumlberlappt sie sichnicht mit den Bildschirminhalten sondern schiebtdiese nach oben Die Elemente in der Leiste wur-den groumlszliger klarer und verschieben sich nichtDie Benachrichtigungen selbst koumlnnen geschlos-sen werden und einige davon bieten die Moumlg-lichkeit direkt auf sie zu reagieren beispielswei-se durch Eingabe einer Antwort in ein Instant-Messaging-System Wenn man mit einer Anwen-dung im Vollbildmodus arbeitet oder ein Spielspielt werden nur wichtige Nachrichten ange-zeigt die anderen werden erst spaumlter praumlsentiertWie sich diese Aumlnderung in der Praxis bewaumlhrtkann dieser Test nicht aufzeigen

Der Standard-Webbrowser unter GNOME istFirefox 180 nicht der mit GNOME mitgelie-ferte Der Dateimanager Files ehemals Nauti-lus erhielt eine stark verbesserte Suchfunktionleichten Zugriff auf kuumlrzlich benutzte Dateienverbesserte Werkzeug- und Seitenleisten bes-sere Menuumlorganisation und Optionen zum Ver-schieben oder Kopieren an einen ausgewaumlhl-ten Ort Allerdings wurden auch Funktionen ent-fernt die von einigen Benutzern geschaumltzt wur-den Der Webbrowser Web erhielt eine Uumlbersichtwie sie auch andere Browser bieten und einen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 7

DISTRIBUTION

Desktop von GNOME 36 mit Anwendungen

verbesserten Vollbildmodus Weitere erwaumlhnens-werte Verbesserungen sind die vollstaumlndige Inte-gration von Funktionen zur Barrierefreiheit alsozur Unterstuumltzung von Anwendern die verschie-dene Arten von Behinderungen aufweisen unddie Integration von alternativen Eingabemetho-den wie sie zur Eingabe vieler nichteuropaumlischerSchriften benoumltigt werden

Die GNOME-Shell kann dank Software-Rendering auf jeder Hardware laufen derFallback-Modus steht optional aber noch zurVerfuumlgung Im Gegensatz zu Unity unter Ubuntu1210 ist das Software-Rendering aber einiger-maszligen schnell und durchaus noch benutzbardoch beim Abspielen von Videos versagt es Dasglobale Menuuml fuumlr Anwendungen ist weiterhinnicht mit der Tastatur erreichbar und Tasten-kuumlrzel fuumlr die Menuumlpunkte fehlen Weiter fehltes an Moumlglichkeiten GNOME nach eigenen

Anwendungsuumlbersicht in der GNOME-Shell

Vorstellungen zu konfigurieren Zum Gluumlck ist esmoumlglich uumlber Erweiterungen der GNOME-Shelleiniges zu aumlndern und einige dieser Erweiterun-gen sind uumlber die Paketverwaltung verfuumlgbar

Die neue Anwendung Boxes enttaumluscht durcheinen gravierenden Mangel an Einstellungen Vir-tuelle Maschinen sind komplexe Gebilde mit vie-len Optionen da koumlnnen die wenigen Optionendie Boxes bietet nur einige voumlllig anspruchslo-se Faumllle abdecken Aumlhnlich primitiv ist die Doku-mentenverwaltung die zudem nutzlos ist wennman nicht bereit ist Dokumente in irgendwelcheClouds zu stellen

KDEKDE ist in Version 49 enthalten aber jetztnur noch ein bdquoSpinldquo von Fedora Es gibt ei-ne KDE-Live-CD aber keine Installations-DVDmehr Zur Installation verwendet man jetzt die

Desktop von KDE 49

Fedora-Installations-DVD und bei der Software-Auswahl waumlhlt man KDE sowie die benoumltigtenAnwendungen aus Den Umfang der installiertenKDE-Anwendungen bestimmt man damit selbst

KDE 49 setzt noch mehr auf Qt Quick Insge-samt halten sich die groumlszligeren Aumlnderungen ge-genuumlber KDE 48 in Grenzen Eine Reihe vonVerbesserungen gab es im Dateimanager Dol-phin und in der Terminal-Emulation Konsole Vie-le weitere Anwendungen und Spiele bekamenkleinere neue Funktionen und Verbesserungen

Die Aktivitaumlten wurden staumlrker mit Dateien Fens-tern und anderen Ressourcen integriert Es solljetzt leichter sein Dateien und Fenster einer Ak-tivitaumlt zuzuordnen und so die eigenen Arbeitsflauml-chen passender zu organisieren Die Ordneran-sicht kann nun Dateien anzeigen die zu einer Ak-tivitaumlt gehoumlren und es so erleichtern die Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 8

DISTRIBUTION

Desktop von KDE 49 mit Anwendungen

in sinnvolle Zusammenhaumlnge zu stellen PrivateAktivitaumlten koumlnnen verschluumlsselt werden DerWindow-Manager KWin erhielt Aumlnderungen sodass man Fensterregeln fuumlr Aktivitaumlten definierenkann

KDE ist im Prinzip der exakte Gegenpol zuGNOME Hier sind die traditionellen Bedienele-mente unbeschaumldigt erhalten und es gibt Einstel-lungsmoumlglichkeiten bis zum kleinsten Detail DiePlasma-Oberflaumlche fuumlr Mobilgeraumlte ist vollstaumln-dig separat von der Desktop-Variante und kanndiese daher auch nicht beeintraumlchtigen Die An-wendungen bieten einen groszligen Funktionsum-fang und sind konfigurier- und erweiterbar Natuumlr-lich gibt es bisweilen andere freie Anwendungen

die den KDE-Anwendungen uumlber-legen sind oder von einigen Be-nutzern bevorzugt werden aberviele KDE-Anwendungen sind gutund nuumltzlich

Die Kritikpunkte an KDE sind die-selben wie eh und je KDEPIMwird des oumlfteren kritisiert beson-ders KMail Da ich selbst noch nieKMail-Benutzer war kann ich da-zu nichts weiter sagen aber essieht so aus als ob die KDEPIM-Entwickler einiges an der Ro-bustheit der Software verbessernmuumlssten um ihren Ruf wiederherzustellen Aktivitaumlten sind trotzaller Verbesserungen in den letz-ten Versionen etwas was von

vielen nur als unnuumltze Komplexitaumlt angesehenwird weil sie keinen Nutzen erkennen Ich dach-te dass man mit Aktivitaumlten eine Gruppe vonAnwendungen gemeinsam starten und stoppenkoumlnnte das koumlnnte wirklich nuumltzlich sein Tat-saumlchlich sind Aktivitaumlten die man einmal definierthat immer vorhanden Man kann sie zwar stop-pen aber ihre Anwendungen laufen weiter Spei-cherplatz laumlsst sich so offenbar nicht sparen Wel-chen Nutzen aber haben sie dann den man mitvirtuellen Desktops nicht erzielen koumlnnte Leidersind derzeit Menuumlpunkte und Optionen zu Aktivi-taumlten uumlberall in Plasma vorhanden angefangenmit dem Button oben rechts auf dem Desktopder sich nicht entfernen laumlsst Es sollte eine Moumlg-lichkeit geben alle Optionen auszublenden

Ein weiteres Problem werden wohl viele Benut-zer schon erlebt haben die sich an einem frischinstallierten KDE einloggen wollten Man kommtnicht weit der Desktop stuumlrzt einfach ab DerGrund ist der dass standardmaumlszligig zahlreiche Ef-fekte eingeschaltet sind und je nach Hardwareund Grafiktreiber kann da Vieles schiefgehenDie Loumlsung besteht darin sich im bdquoabgesichertenModusldquo einzuloggen und die Effekte abzuschal-ten Korrekt waumlre alle Effekte standardmaumlszligig ab-zuschalten so wie es beispielsweise Suse LinuxEnterprise macht Wenn ein Benutzer Effekte ak-tiviert dann auf eigenes Risiko und wenn daseinen Absturz zur Folge hat sollte ihm dann klarsein woran es lag

Multimedia im Browser und DesktopWegen der Softwarepatente in den USA kannFedora ebenso wie die meisten anderen Dis-tributionen nur wenige Medienformate abspie-len da es viele benoumltigte Codecs nicht mitliefernkann Wenn man versucht eine MP3- oder Vi-deodatei abzuspielen dann bieten die gaumlngigenPlayer aber die Option an uumlber die Paketverwal-tung nach passenden Plug-ins zu suchen

Damit die Suche in der Paketverwaltung Aus-sicht auf Erfolg hat muss man vorher die zusaumltz-lichen Repositories von RPM Fusion eintragenDas muss man wissen oder durch Suchen her-ausfinden Die Repositories kann man eintragenindem man die Webseite von RPM Fusion [15]besucht Von dieser kann man Pakete installie-ren die die Repositories hinzufuumlgen Dies gilt fuumlrGNOME wie fuumlr KDE

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 9

DISTRIBUTION

Nach dieser Vorbereitung sollten die Player un-ter GNOME und KDE in der Lage sein die be-noumltigten Plug-ins selbsttaumltig zu installieren Merk-wuumlrdigerweise hat Totem aber ein Problem wennman ausgerechnet mit der Suche nach einemMP3-Plug-in anfaumlngt und noch keine Codecs in-stalliert sind ndash diese Suche schlaumlgt fehl Bei Vi-deoformaten funktioniert es aber Am schnellstenund einfachsten ist allerdings eine manuelle In-stallation der GStreamer-Plugins insbesonderegstreamer-ugly und gstreamer-ffmpeg Dennwenn man die Plug-ins von Totem installierenlaumlsst treten wie schon in der Vorversion eineReihe von Merkwuumlrdigkeiten auf

1 Nach der Installation muss Totem neu gestar-tet werden sonst sieht er die neuen Plug-insnicht

2 Das Spiel mit Suchen und Installieren mussggf mehrmals wiederholt werden denn dasProgramm scheint unfaumlhig zu sein alle benouml-tigten Codecs auf einmal zu ermitteln

3 Zur Installation ist die Eingabe des eige-nen Passworts noumltig Trotz korrekter Einga-be schreibt die Dialogbox jedoch bdquoEntschuldi-gung das hat nicht geklapptldquo nur um dannfortzufahren und die Pakete korrekt zu instal-lieren

Totem erscheint bei Installation von DVDs auchunter KDE als Standard-Medienplayer auch fuumlrMP3-Dateien Das haumlngt wohl damit zusam-men dass bei der KDE-Installation eine Men-ge GNOME-Pakete mitinstalliert werden Dragon-player ist als Alternative installiert

Die Flash-Situation in den Browsern bleibt mittel-maumlszligig Ohne den Adobe Flash Player geht nichtallzuviel Nichts hat sich bei Gnash getan dasbei Version 0810 blieb Es kann viele Flash-Videos im Web nicht abspielen Die freie Alterna-tive Lightspark ist jetzt in Version 071 in den Re-positories von RPM Fusion enthalten und kannvermutlich einige Videos mehr abspielen Kon-queror der Standard-Browser unter KDE stuumlrz-te beim Versuch ein Youtube-Video abzuspielenab Offensichtlich verwendet man besser einenanderen Browser unter KDE

Bei der Installation des Adobe Flash Playerskann man aumlhnlich vorgehen wie bei RPM Fu-sion Zunaumlchst laumldt man von Adobe eine RPM-Datei herunter die das Repository anlegt Dannkann man uumlber die Paketverwaltung das eigentli-che Plug-in installieren Die Alternative zu Flashdas WebM-Format sollte in Firefox seit Version 4kaum Probleme bereiten

Paketverwaltung und UpdatesWenig hat sich bei der Paketverwaltung getan In-stallation bzw Deinstallation und das Aktualisie-ren von Paketen sind weiterhin separate Anwen-dungen die aber auch von der Paketverwaltungaus aufgerufen werden koumlnnen Sie funktionie-ren normalerweise reibungslos und die Updateswenn sie auch zahlreich sind sind dank Delta-RPMs oft erstaunlich klein und schnell installiert

Die Paketverwaltung baut unter GNOME undKDE grundsaumltzlich auf PackageKit auf Die Pro-gramme ndash gpk-application 361 bzw apper 080

Installation von Updates in KDE von derBenachrichtigung aus

ndash sind komfortabel genug Etwas Vergleichba-res wie das Software Center von Ubuntu bietetFedora jedoch nicht

Etwas merkwuumlrdig ist dass man beim erstenUpdate gefragt wird ob man der Paketquel-le vertraut Eigentlich sollten die Schluumlssel derStandard-Repositories bereits vorinstalliert seinund Fedora sollte seinen eigenen Quellen auto-matisch vertrauen

FazitFedora 18 wurde von einigen Benutzern darun-ter sogar Alan Cox als die bisher schlechtesteVersion bezeichnet und das mag sogar zutreffenAllerdings muss man das relativieren Die Kritik

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 10

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 4: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DISTRIBUTION

Zusammenfassung der Installation

wissen wohl nur die Entwickler Auf der Seite sindalle Punkte die vom Benutzer noch bearbeitetwerden muumlssen mit einem gelben bdquoWarndreieckldquomarkiert ndash als ob es ein Fehler des Benutzerssei dass diese Punkte noch offen sind

Als erstes muss man das Installationsziel aus-waumlhlen Die erkannten Festplatten werden durchein Icon angezeigt das allerdings die grundle-gende Information vermissen laumlsst um welchesGeraumlt (devsda usw) es sich handelt Stattdes-sen zeigen die Entwickler den Modellnamen desGeraumltes an Hier gibt es ein schwerwiegendesProblem Hat man zwei oder mehr Festplatten

desselben Modells ver-baut wie soll man sieunterscheiden Ein Merk-mal waumlre der Geraumltena-me ein anderes die Seri-ennummer ndash beides fehltjedoch Wenn man plantein RAID-System einzu-richten mag das ver-schmerzbar sein in ande-ren Faumlllen besteht jedochdie Gefahr dass man diefalschen Partitionen uumlber-schreibt Bei genauererPruumlfung stellt sich her-aus [5] dass die Entwick-ler die Platten auch in derfalschen Reihenfolge an-zeigen was Fehler gera-dezu herausfordert

Bevor man die Installation starten kann mussman die Installationsquelle auswaumlhlen Meistmuss man hier nur die Vorgabe bestaumltigen jeden-falls wenn man von der DVD installiert Warumdie explizite Auswahl hier forciert wird obwohlman sie von der Uumlbersichtsseite aus aufrufenkann wenn man sie braucht ist nicht nachvoll-ziehbar

Auch die Software-Auswahl sollte man sich nochansehen Das sollte man sowieso wenn mannicht GNOME sondern eine andere Oberflaumlcheinstallieren will aber es ist auch noumltig haumlufigbenoumltigte Anwendungen wie LibreOffice explizit

auszuwaumlhlen sonst werden sie nicht mit instal-liert und man muss es spaumlter nachholen waszusaumltzlichen Aufwand darstellt Wenn man KDEauswaumlhlt sollte man darauf achten dass auchApper installiert wird ansonsten muss man spauml-ter seine Software-Updates oder zusaumltzliche Pro-gramme von der Kommandozeile aus installie-ren

Nach Angaben der Entwickler ist Anaconda indieser Version noch unvollstaumlndig Jedoch sinddie gewohnten Optionen wie die Verschluumlsse-lung der gesamten Festplatte oder einzelner Par-titionen RAID und LVM vorhanden Auch dasDateisystem Btrfs wird wieder unterstuumltzt sogarmit seinen spezifischen Funktionen wie Subvolu-mes Wer die automatische Partitionierung waumlhlterhaumllt eine LVM-Installation mit einer 500 MBgroszligen boot-Partition und dem Rest als Root-Partition Die Installation verlief im Test unfallfreivon den erwaumlhnten Problemen abgesehen

Wer bereits Fedora 17 installiert hat kann mitdem Programm fedup auf Version 18 aktualisie-ren Uumlblicherweise bezieht man dabei die ca1400 zu aktualisierenden Pakete uumlber das Netzaber auch andere Quellen sind moumlglich Das Up-date funktionierte problemlos allerdings erst imzweiten Anlauf Anhand der Logdatei konnte mansehen was passiert war Das Update schaufeltein mehr als 300 MB groszliges Bootimage nachboot Ist nicht genug Platz vorhanden geht esschief ohne dass der Benutzer informiert wirdDies duumlrfte dem Bugzilla-Fehler 902498 [6] ent-sprechen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 4

DISTRIBUTION

Bootscreen von Fedora 18

Beim ersten Booten des installierten Systemskommt das bekannte Einrichtungsprogramm mitder Moumlglichkeit Benutzer anzulegen

AusstattungDer Kernel in Fedora 18 beruht auf Linux 372Dazu gesellen sich zahlreiche aktualisierte Soft-warepakete Fedora 18 enthaumllt eine neue Ver-sion des NetworkManagers der die Nutzung vonWLAN-Hotspots [7] deutlich erleichtern soll AlsDesktop-Umgebungen stehen in Fedora 18 un-ter anderem KDE SC 49 GNOME 36 Xfce

Erstellung des ersten Benutzers

410 und Sugar 098 zur Verfuumlgung Auszligerdemwurden der GNOME-Fork Cinnamon und derGNOME2-Nachfolger Mate aufgenommen Dievon Red Hat entwickelten Schriften bdquoLiberationFontsldquo kommen in einer neuen Version Avahidie freie MDNS-Implementation wird auf Desk-tops standardmaumlszligig aktiviert

Administratoren finden in Fedora 18 unter ande-rem erstmals die fehlertolerante und skalierbareNoSQL-Datenbank Riak [8] und Samba 4 [9] dasSMB3 und vertrauenswuumlrdige Domaumlnen von Fre-eIPA unterstuumltzt Ein Fedora 18-System soll sich

auch leicht in eine Active Directory- oder FreeIPA-Domaumlne integrieren lassen Auszligerdem sind jetztSystem-Updates offline [10] moumlglich indem Pa-kete die zuvor im Hintergrund heruntergeladenwurden beim Neustart des Systems in einemspeziellen Update-Modus installiert werden be-vor das regulaumlre System startet Dadurch werdeninkonsistente Zustaumlnde vermieden die bei Upda-tes im laufenden System vorkommen koumlnnen

Fuumlr Administratoren ist es auch wichtig zuwissen dass einige Konfigurationsdateien inetcsysconfig nicht mehr verwendet werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 5

DISTRIBUTION

sollen Stattdessen werden andere Dateien inetc benutzt

Einiges hat sich bei der Sicherheit getan Die In-stallation unterstuumltzt UEFI Secure Boot Der Dae-mon rngd der dem Kernel-Zufallsgenerator zu-saumltzliche Entropie zufuumlhren soll wird standard-maumlszligig installiert aber nicht gestartet Mit SELi-nux und virt-sandbox koumlnnen nun auch Dienstein sicheren Sandkaumlsten ausgefuumlhrt werden auchals Root Mit der Bibliothek libseccomp koumlnnenAnwendungen festlegen welche Systemaufrufesie ausfuumlhren wollen Qemu und KVM nutzendies zur Erhoumlhung ihrer Sicherheit Die Verwen-dung von PolicyKit wurde weiter ausgedehnt

Ein neues Kommandozeilenprogramm ssm (Sys-tem Storage Manager [11]) vereinheitlicht die Ver-waltung von Speichergeraumlten gleichguumlltig ob da-bei LVM RAID oder Btrfs zum Einsatz kommenDas Verzeichnis tmp wird als tmpfs im RAM rea-lisiert [12] was sich aber aumlndern laumlsst Aumlndernmuss man es aber nur wenn ein Programm ge-gen die Konventionen verstoumlszligt und groszlige Datei-en in tmp ablegt statt den Systempfad abzufra-gen oder als Fallback vartmp zu verwendenNeu ist FedFS [13] ein Mechanismus mit demman eine konsistente Sicht auf den Dateibaumvon verschiedenen Dateiservern einrichten kannEs ist allerdings noch im Status einer Vorschau

Firewalld [14] wird anstelle von iptables standard-maumlszligig als Firewall eingesetzt Dadurch wird dieFirewall dynamisch und benoumltigt fuumlr Aumlnderungenkeinen Neustart mehr Der Paketmanager DNFist erstmals als Alternative zu YUM verfuumlgbar In

Firewall-Konfiguration

einem kurzen Test arbeitete ermindestens genauso schnell wieYum dem man bekanntlich bis-weilen mehr Geschwindigkeitwuumlnscht und teilweise auch deut-lich schneller Yum besitzt aberwesentlich mehr Funktionen ver-mutlich ist DNF derzeit nur einExtra Systemtap ein umfangrei-ches Trace-System wurde aufVersion 2 aktualisiert auch dasTrace-System LTTng liegt in Ver-sion 20 vor

Fuumlr Entwickler gab es zahlrei-che Updates der Programmier-umgebungen beispielsweise Dund Haskell Unterstuumltzung fuumlr dieProgrammiersprache Clojure kamneu hinzu Perl (516) Python (33) Ruby onRails (32) und PHP wurden aktualisiert DiePower7-Plattform ppc64p7 wird nun unterstuumltztOwncloud ist jetzt in der Distribution enthaltenund Terminals koumlnnen 256 statt nur 8 Farben nut-zen

Auch im Bereich Virtualisierung und Cloud wur-de Fedora 18 erweitert OpenShift Origin ei-ne Platform-as-a-Service-Infrastruktur (PaaS)wurde hinzugefuumlgt Mit Eucalyptus lassen sichprivate Amazon-kompatible Clouds verwaltenDie Plattform OpenStack fuumlr Infrastructure-as-a-Service (IaaS) wurde auf die Version bdquoFolsomldquoaktualisiert die alternative IaaS-Plattform Eu-calyptus auf Version 31 Das Projekt Heat zur

Orchestrierung von Cloud-Anwendungen kamhinzu Virt Live Snapshots machen es moumlglichSchnappschuumlsse von virtuellen Maschinen unterQemu und libvirt zu machen ohne die Gastsys-teme anzuhalten oVirt wurde auf Version 31 ge-bracht und enthaumllt jetzt auch grafische Werkzeu-ge

Fedora 18 startet etwa genauso schnell wie seinVorgaumlnger Wie immer ist SELinux eingebundenund aktiviert Als normaler Benutzer merkt manuumlberhaupt nichts davon solange die Konfigurati-on korrekt ist In Fedora 18 wie auch in der Vor-version trat kein sichtbares Problem im Zusam-menhang mit SELinux auf Fuumlr den Fall dass einProblem auftritt sei es nach der Installation von

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 6

DISTRIBUTION

zusaumltzlicher Software oder anderen Aumlnderungensteht ein Diagnosewerkzeug zur Verfuumlgung

KDE benoumltigt in Fedora 18 direkt nach dem Startmit einem geoumlffneten Terminal-Fenster etwa 420MB RAM Gnome dagegen hat sich auf 470MB aufgeblaumlht hauptsaumlchlich durch die GNOME-Shell Bei der Geschwindigkeit laumlsst sich keinnennenswerter Unterschied zwischen den Desk-tops feststellen sofern genug RAM vorhanden istDie Angaben zum Speicherverbrauch sind nurals Anhaltswerte zu sehen die sich je nach Hard-ware und Messzeitpunkt erheblich unterscheidenkoumlnnen

GNOMEGNOME 36 ist der Standard-Desktop von Fedo-ra 18 wenn man nicht ausdruumlcklich KDE Xfce

Der Login-Bildschirm von GNOME

oder anderes auswaumlhlt Gegenuumlber GNOME 34ist der Menuumlpunkt Ausschalten anstelle des alsnutzlos kritisierten Suspendieren zuruumlckgekehrtDie Aktivitaumltenuumlbersicht der GNOME-Shell be-sitzt nun einen Gitter-Button in der Startleiste(Dash) mit dem man angeblich schnell zu ein-zelnen Anwendungen wechseln kann Schnellist daran allerdings nichts weil man dennochmeistens nach der Anwendung suchen mussDie Eingabe von Suchbegriffen soll durch dasHervorheben der Suchleiste vereinfacht werden

Das Sperren des Bildschirms folgt nun demParadigma einer Jalousie die vor dem Bild-schirm heruntergezogen wird und wurde direktin die GNOME-Shell eingebaut Der gesperrteBildschirm zeigt eine groszlige Uhr Anpassungs-moumlglichkeiten fehlen Der gesperrte Bildschirm

erlaubt aber auch das Anhalten undAumlndern der Lautstaumlrke falls Audioabgespielt wird Das kann man zuRecht kritisch sehen Uumlberdies wer-den auch Benachrichtigungen einge-blendet was allerdings abschaltbar istDoch es ist paradox dass ausgerech-net eine Funktion bei der es keiner Op-tion bedarf ndash die Privatsphaumlre gebietetes dass keinerlei Benachrichtigungenin Abwesenheit des Benutzers ange-zeigt werden ndash eine Option besitzt undauch noch die falsche Standardeinstel-lung hat waumlhrend das GNOME-Teamsonst jegliche individuellen Einstellun-gen verweigert jedenfalls in der grafi-schen Oberflaumlche

Eine der wichtigsten Neuerungen ist ferner dieUumlberarbeitung der Benachrichtigungen Fruumlherwurden Benachrichtigungen am oberen Bild-schirmrand unter der Systemleiste eingeblendetnun haben sie eine eigene Leiste am unterenBildschirmrand erhalten die aber nur eingeblen-det wird wenn man mit der Maus fuumlr einen Mo-ment an den unteren Bildschirmrand faumlhrt Wenndie Leiste eingeblendet wird uumlberlappt sie sichnicht mit den Bildschirminhalten sondern schiebtdiese nach oben Die Elemente in der Leiste wur-den groumlszliger klarer und verschieben sich nichtDie Benachrichtigungen selbst koumlnnen geschlos-sen werden und einige davon bieten die Moumlg-lichkeit direkt auf sie zu reagieren beispielswei-se durch Eingabe einer Antwort in ein Instant-Messaging-System Wenn man mit einer Anwen-dung im Vollbildmodus arbeitet oder ein Spielspielt werden nur wichtige Nachrichten ange-zeigt die anderen werden erst spaumlter praumlsentiertWie sich diese Aumlnderung in der Praxis bewaumlhrtkann dieser Test nicht aufzeigen

Der Standard-Webbrowser unter GNOME istFirefox 180 nicht der mit GNOME mitgelie-ferte Der Dateimanager Files ehemals Nauti-lus erhielt eine stark verbesserte Suchfunktionleichten Zugriff auf kuumlrzlich benutzte Dateienverbesserte Werkzeug- und Seitenleisten bes-sere Menuumlorganisation und Optionen zum Ver-schieben oder Kopieren an einen ausgewaumlhl-ten Ort Allerdings wurden auch Funktionen ent-fernt die von einigen Benutzern geschaumltzt wur-den Der Webbrowser Web erhielt eine Uumlbersichtwie sie auch andere Browser bieten und einen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 7

DISTRIBUTION

Desktop von GNOME 36 mit Anwendungen

verbesserten Vollbildmodus Weitere erwaumlhnens-werte Verbesserungen sind die vollstaumlndige Inte-gration von Funktionen zur Barrierefreiheit alsozur Unterstuumltzung von Anwendern die verschie-dene Arten von Behinderungen aufweisen unddie Integration von alternativen Eingabemetho-den wie sie zur Eingabe vieler nichteuropaumlischerSchriften benoumltigt werden

Die GNOME-Shell kann dank Software-Rendering auf jeder Hardware laufen derFallback-Modus steht optional aber noch zurVerfuumlgung Im Gegensatz zu Unity unter Ubuntu1210 ist das Software-Rendering aber einiger-maszligen schnell und durchaus noch benutzbardoch beim Abspielen von Videos versagt es Dasglobale Menuuml fuumlr Anwendungen ist weiterhinnicht mit der Tastatur erreichbar und Tasten-kuumlrzel fuumlr die Menuumlpunkte fehlen Weiter fehltes an Moumlglichkeiten GNOME nach eigenen

Anwendungsuumlbersicht in der GNOME-Shell

Vorstellungen zu konfigurieren Zum Gluumlck ist esmoumlglich uumlber Erweiterungen der GNOME-Shelleiniges zu aumlndern und einige dieser Erweiterun-gen sind uumlber die Paketverwaltung verfuumlgbar

Die neue Anwendung Boxes enttaumluscht durcheinen gravierenden Mangel an Einstellungen Vir-tuelle Maschinen sind komplexe Gebilde mit vie-len Optionen da koumlnnen die wenigen Optionendie Boxes bietet nur einige voumlllig anspruchslo-se Faumllle abdecken Aumlhnlich primitiv ist die Doku-mentenverwaltung die zudem nutzlos ist wennman nicht bereit ist Dokumente in irgendwelcheClouds zu stellen

KDEKDE ist in Version 49 enthalten aber jetztnur noch ein bdquoSpinldquo von Fedora Es gibt ei-ne KDE-Live-CD aber keine Installations-DVDmehr Zur Installation verwendet man jetzt die

Desktop von KDE 49

Fedora-Installations-DVD und bei der Software-Auswahl waumlhlt man KDE sowie die benoumltigtenAnwendungen aus Den Umfang der installiertenKDE-Anwendungen bestimmt man damit selbst

KDE 49 setzt noch mehr auf Qt Quick Insge-samt halten sich die groumlszligeren Aumlnderungen ge-genuumlber KDE 48 in Grenzen Eine Reihe vonVerbesserungen gab es im Dateimanager Dol-phin und in der Terminal-Emulation Konsole Vie-le weitere Anwendungen und Spiele bekamenkleinere neue Funktionen und Verbesserungen

Die Aktivitaumlten wurden staumlrker mit Dateien Fens-tern und anderen Ressourcen integriert Es solljetzt leichter sein Dateien und Fenster einer Ak-tivitaumlt zuzuordnen und so die eigenen Arbeitsflauml-chen passender zu organisieren Die Ordneran-sicht kann nun Dateien anzeigen die zu einer Ak-tivitaumlt gehoumlren und es so erleichtern die Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 8

DISTRIBUTION

Desktop von KDE 49 mit Anwendungen

in sinnvolle Zusammenhaumlnge zu stellen PrivateAktivitaumlten koumlnnen verschluumlsselt werden DerWindow-Manager KWin erhielt Aumlnderungen sodass man Fensterregeln fuumlr Aktivitaumlten definierenkann

KDE ist im Prinzip der exakte Gegenpol zuGNOME Hier sind die traditionellen Bedienele-mente unbeschaumldigt erhalten und es gibt Einstel-lungsmoumlglichkeiten bis zum kleinsten Detail DiePlasma-Oberflaumlche fuumlr Mobilgeraumlte ist vollstaumln-dig separat von der Desktop-Variante und kanndiese daher auch nicht beeintraumlchtigen Die An-wendungen bieten einen groszligen Funktionsum-fang und sind konfigurier- und erweiterbar Natuumlr-lich gibt es bisweilen andere freie Anwendungen

die den KDE-Anwendungen uumlber-legen sind oder von einigen Be-nutzern bevorzugt werden aberviele KDE-Anwendungen sind gutund nuumltzlich

Die Kritikpunkte an KDE sind die-selben wie eh und je KDEPIMwird des oumlfteren kritisiert beson-ders KMail Da ich selbst noch nieKMail-Benutzer war kann ich da-zu nichts weiter sagen aber essieht so aus als ob die KDEPIM-Entwickler einiges an der Ro-bustheit der Software verbessernmuumlssten um ihren Ruf wiederherzustellen Aktivitaumlten sind trotzaller Verbesserungen in den letz-ten Versionen etwas was von

vielen nur als unnuumltze Komplexitaumlt angesehenwird weil sie keinen Nutzen erkennen Ich dach-te dass man mit Aktivitaumlten eine Gruppe vonAnwendungen gemeinsam starten und stoppenkoumlnnte das koumlnnte wirklich nuumltzlich sein Tat-saumlchlich sind Aktivitaumlten die man einmal definierthat immer vorhanden Man kann sie zwar stop-pen aber ihre Anwendungen laufen weiter Spei-cherplatz laumlsst sich so offenbar nicht sparen Wel-chen Nutzen aber haben sie dann den man mitvirtuellen Desktops nicht erzielen koumlnnte Leidersind derzeit Menuumlpunkte und Optionen zu Aktivi-taumlten uumlberall in Plasma vorhanden angefangenmit dem Button oben rechts auf dem Desktopder sich nicht entfernen laumlsst Es sollte eine Moumlg-lichkeit geben alle Optionen auszublenden

Ein weiteres Problem werden wohl viele Benut-zer schon erlebt haben die sich an einem frischinstallierten KDE einloggen wollten Man kommtnicht weit der Desktop stuumlrzt einfach ab DerGrund ist der dass standardmaumlszligig zahlreiche Ef-fekte eingeschaltet sind und je nach Hardwareund Grafiktreiber kann da Vieles schiefgehenDie Loumlsung besteht darin sich im bdquoabgesichertenModusldquo einzuloggen und die Effekte abzuschal-ten Korrekt waumlre alle Effekte standardmaumlszligig ab-zuschalten so wie es beispielsweise Suse LinuxEnterprise macht Wenn ein Benutzer Effekte ak-tiviert dann auf eigenes Risiko und wenn daseinen Absturz zur Folge hat sollte ihm dann klarsein woran es lag

Multimedia im Browser und DesktopWegen der Softwarepatente in den USA kannFedora ebenso wie die meisten anderen Dis-tributionen nur wenige Medienformate abspie-len da es viele benoumltigte Codecs nicht mitliefernkann Wenn man versucht eine MP3- oder Vi-deodatei abzuspielen dann bieten die gaumlngigenPlayer aber die Option an uumlber die Paketverwal-tung nach passenden Plug-ins zu suchen

Damit die Suche in der Paketverwaltung Aus-sicht auf Erfolg hat muss man vorher die zusaumltz-lichen Repositories von RPM Fusion eintragenDas muss man wissen oder durch Suchen her-ausfinden Die Repositories kann man eintragenindem man die Webseite von RPM Fusion [15]besucht Von dieser kann man Pakete installie-ren die die Repositories hinzufuumlgen Dies gilt fuumlrGNOME wie fuumlr KDE

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 9

DISTRIBUTION

Nach dieser Vorbereitung sollten die Player un-ter GNOME und KDE in der Lage sein die be-noumltigten Plug-ins selbsttaumltig zu installieren Merk-wuumlrdigerweise hat Totem aber ein Problem wennman ausgerechnet mit der Suche nach einemMP3-Plug-in anfaumlngt und noch keine Codecs in-stalliert sind ndash diese Suche schlaumlgt fehl Bei Vi-deoformaten funktioniert es aber Am schnellstenund einfachsten ist allerdings eine manuelle In-stallation der GStreamer-Plugins insbesonderegstreamer-ugly und gstreamer-ffmpeg Dennwenn man die Plug-ins von Totem installierenlaumlsst treten wie schon in der Vorversion eineReihe von Merkwuumlrdigkeiten auf

1 Nach der Installation muss Totem neu gestar-tet werden sonst sieht er die neuen Plug-insnicht

2 Das Spiel mit Suchen und Installieren mussggf mehrmals wiederholt werden denn dasProgramm scheint unfaumlhig zu sein alle benouml-tigten Codecs auf einmal zu ermitteln

3 Zur Installation ist die Eingabe des eige-nen Passworts noumltig Trotz korrekter Einga-be schreibt die Dialogbox jedoch bdquoEntschuldi-gung das hat nicht geklapptldquo nur um dannfortzufahren und die Pakete korrekt zu instal-lieren

Totem erscheint bei Installation von DVDs auchunter KDE als Standard-Medienplayer auch fuumlrMP3-Dateien Das haumlngt wohl damit zusam-men dass bei der KDE-Installation eine Men-ge GNOME-Pakete mitinstalliert werden Dragon-player ist als Alternative installiert

Die Flash-Situation in den Browsern bleibt mittel-maumlszligig Ohne den Adobe Flash Player geht nichtallzuviel Nichts hat sich bei Gnash getan dasbei Version 0810 blieb Es kann viele Flash-Videos im Web nicht abspielen Die freie Alterna-tive Lightspark ist jetzt in Version 071 in den Re-positories von RPM Fusion enthalten und kannvermutlich einige Videos mehr abspielen Kon-queror der Standard-Browser unter KDE stuumlrz-te beim Versuch ein Youtube-Video abzuspielenab Offensichtlich verwendet man besser einenanderen Browser unter KDE

Bei der Installation des Adobe Flash Playerskann man aumlhnlich vorgehen wie bei RPM Fu-sion Zunaumlchst laumldt man von Adobe eine RPM-Datei herunter die das Repository anlegt Dannkann man uumlber die Paketverwaltung das eigentli-che Plug-in installieren Die Alternative zu Flashdas WebM-Format sollte in Firefox seit Version 4kaum Probleme bereiten

Paketverwaltung und UpdatesWenig hat sich bei der Paketverwaltung getan In-stallation bzw Deinstallation und das Aktualisie-ren von Paketen sind weiterhin separate Anwen-dungen die aber auch von der Paketverwaltungaus aufgerufen werden koumlnnen Sie funktionie-ren normalerweise reibungslos und die Updateswenn sie auch zahlreich sind sind dank Delta-RPMs oft erstaunlich klein und schnell installiert

Die Paketverwaltung baut unter GNOME undKDE grundsaumltzlich auf PackageKit auf Die Pro-gramme ndash gpk-application 361 bzw apper 080

Installation von Updates in KDE von derBenachrichtigung aus

ndash sind komfortabel genug Etwas Vergleichba-res wie das Software Center von Ubuntu bietetFedora jedoch nicht

Etwas merkwuumlrdig ist dass man beim erstenUpdate gefragt wird ob man der Paketquel-le vertraut Eigentlich sollten die Schluumlssel derStandard-Repositories bereits vorinstalliert seinund Fedora sollte seinen eigenen Quellen auto-matisch vertrauen

FazitFedora 18 wurde von einigen Benutzern darun-ter sogar Alan Cox als die bisher schlechtesteVersion bezeichnet und das mag sogar zutreffenAllerdings muss man das relativieren Die Kritik

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 10

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 5: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DISTRIBUTION

Bootscreen von Fedora 18

Beim ersten Booten des installierten Systemskommt das bekannte Einrichtungsprogramm mitder Moumlglichkeit Benutzer anzulegen

AusstattungDer Kernel in Fedora 18 beruht auf Linux 372Dazu gesellen sich zahlreiche aktualisierte Soft-warepakete Fedora 18 enthaumllt eine neue Ver-sion des NetworkManagers der die Nutzung vonWLAN-Hotspots [7] deutlich erleichtern soll AlsDesktop-Umgebungen stehen in Fedora 18 un-ter anderem KDE SC 49 GNOME 36 Xfce

Erstellung des ersten Benutzers

410 und Sugar 098 zur Verfuumlgung Auszligerdemwurden der GNOME-Fork Cinnamon und derGNOME2-Nachfolger Mate aufgenommen Dievon Red Hat entwickelten Schriften bdquoLiberationFontsldquo kommen in einer neuen Version Avahidie freie MDNS-Implementation wird auf Desk-tops standardmaumlszligig aktiviert

Administratoren finden in Fedora 18 unter ande-rem erstmals die fehlertolerante und skalierbareNoSQL-Datenbank Riak [8] und Samba 4 [9] dasSMB3 und vertrauenswuumlrdige Domaumlnen von Fre-eIPA unterstuumltzt Ein Fedora 18-System soll sich

auch leicht in eine Active Directory- oder FreeIPA-Domaumlne integrieren lassen Auszligerdem sind jetztSystem-Updates offline [10] moumlglich indem Pa-kete die zuvor im Hintergrund heruntergeladenwurden beim Neustart des Systems in einemspeziellen Update-Modus installiert werden be-vor das regulaumlre System startet Dadurch werdeninkonsistente Zustaumlnde vermieden die bei Upda-tes im laufenden System vorkommen koumlnnen

Fuumlr Administratoren ist es auch wichtig zuwissen dass einige Konfigurationsdateien inetcsysconfig nicht mehr verwendet werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 5

DISTRIBUTION

sollen Stattdessen werden andere Dateien inetc benutzt

Einiges hat sich bei der Sicherheit getan Die In-stallation unterstuumltzt UEFI Secure Boot Der Dae-mon rngd der dem Kernel-Zufallsgenerator zu-saumltzliche Entropie zufuumlhren soll wird standard-maumlszligig installiert aber nicht gestartet Mit SELi-nux und virt-sandbox koumlnnen nun auch Dienstein sicheren Sandkaumlsten ausgefuumlhrt werden auchals Root Mit der Bibliothek libseccomp koumlnnenAnwendungen festlegen welche Systemaufrufesie ausfuumlhren wollen Qemu und KVM nutzendies zur Erhoumlhung ihrer Sicherheit Die Verwen-dung von PolicyKit wurde weiter ausgedehnt

Ein neues Kommandozeilenprogramm ssm (Sys-tem Storage Manager [11]) vereinheitlicht die Ver-waltung von Speichergeraumlten gleichguumlltig ob da-bei LVM RAID oder Btrfs zum Einsatz kommenDas Verzeichnis tmp wird als tmpfs im RAM rea-lisiert [12] was sich aber aumlndern laumlsst Aumlndernmuss man es aber nur wenn ein Programm ge-gen die Konventionen verstoumlszligt und groszlige Datei-en in tmp ablegt statt den Systempfad abzufra-gen oder als Fallback vartmp zu verwendenNeu ist FedFS [13] ein Mechanismus mit demman eine konsistente Sicht auf den Dateibaumvon verschiedenen Dateiservern einrichten kannEs ist allerdings noch im Status einer Vorschau

Firewalld [14] wird anstelle von iptables standard-maumlszligig als Firewall eingesetzt Dadurch wird dieFirewall dynamisch und benoumltigt fuumlr Aumlnderungenkeinen Neustart mehr Der Paketmanager DNFist erstmals als Alternative zu YUM verfuumlgbar In

Firewall-Konfiguration

einem kurzen Test arbeitete ermindestens genauso schnell wieYum dem man bekanntlich bis-weilen mehr Geschwindigkeitwuumlnscht und teilweise auch deut-lich schneller Yum besitzt aberwesentlich mehr Funktionen ver-mutlich ist DNF derzeit nur einExtra Systemtap ein umfangrei-ches Trace-System wurde aufVersion 2 aktualisiert auch dasTrace-System LTTng liegt in Ver-sion 20 vor

Fuumlr Entwickler gab es zahlrei-che Updates der Programmier-umgebungen beispielsweise Dund Haskell Unterstuumltzung fuumlr dieProgrammiersprache Clojure kamneu hinzu Perl (516) Python (33) Ruby onRails (32) und PHP wurden aktualisiert DiePower7-Plattform ppc64p7 wird nun unterstuumltztOwncloud ist jetzt in der Distribution enthaltenund Terminals koumlnnen 256 statt nur 8 Farben nut-zen

Auch im Bereich Virtualisierung und Cloud wur-de Fedora 18 erweitert OpenShift Origin ei-ne Platform-as-a-Service-Infrastruktur (PaaS)wurde hinzugefuumlgt Mit Eucalyptus lassen sichprivate Amazon-kompatible Clouds verwaltenDie Plattform OpenStack fuumlr Infrastructure-as-a-Service (IaaS) wurde auf die Version bdquoFolsomldquoaktualisiert die alternative IaaS-Plattform Eu-calyptus auf Version 31 Das Projekt Heat zur

Orchestrierung von Cloud-Anwendungen kamhinzu Virt Live Snapshots machen es moumlglichSchnappschuumlsse von virtuellen Maschinen unterQemu und libvirt zu machen ohne die Gastsys-teme anzuhalten oVirt wurde auf Version 31 ge-bracht und enthaumllt jetzt auch grafische Werkzeu-ge

Fedora 18 startet etwa genauso schnell wie seinVorgaumlnger Wie immer ist SELinux eingebundenund aktiviert Als normaler Benutzer merkt manuumlberhaupt nichts davon solange die Konfigurati-on korrekt ist In Fedora 18 wie auch in der Vor-version trat kein sichtbares Problem im Zusam-menhang mit SELinux auf Fuumlr den Fall dass einProblem auftritt sei es nach der Installation von

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 6

DISTRIBUTION

zusaumltzlicher Software oder anderen Aumlnderungensteht ein Diagnosewerkzeug zur Verfuumlgung

KDE benoumltigt in Fedora 18 direkt nach dem Startmit einem geoumlffneten Terminal-Fenster etwa 420MB RAM Gnome dagegen hat sich auf 470MB aufgeblaumlht hauptsaumlchlich durch die GNOME-Shell Bei der Geschwindigkeit laumlsst sich keinnennenswerter Unterschied zwischen den Desk-tops feststellen sofern genug RAM vorhanden istDie Angaben zum Speicherverbrauch sind nurals Anhaltswerte zu sehen die sich je nach Hard-ware und Messzeitpunkt erheblich unterscheidenkoumlnnen

GNOMEGNOME 36 ist der Standard-Desktop von Fedo-ra 18 wenn man nicht ausdruumlcklich KDE Xfce

Der Login-Bildschirm von GNOME

oder anderes auswaumlhlt Gegenuumlber GNOME 34ist der Menuumlpunkt Ausschalten anstelle des alsnutzlos kritisierten Suspendieren zuruumlckgekehrtDie Aktivitaumltenuumlbersicht der GNOME-Shell be-sitzt nun einen Gitter-Button in der Startleiste(Dash) mit dem man angeblich schnell zu ein-zelnen Anwendungen wechseln kann Schnellist daran allerdings nichts weil man dennochmeistens nach der Anwendung suchen mussDie Eingabe von Suchbegriffen soll durch dasHervorheben der Suchleiste vereinfacht werden

Das Sperren des Bildschirms folgt nun demParadigma einer Jalousie die vor dem Bild-schirm heruntergezogen wird und wurde direktin die GNOME-Shell eingebaut Der gesperrteBildschirm zeigt eine groszlige Uhr Anpassungs-moumlglichkeiten fehlen Der gesperrte Bildschirm

erlaubt aber auch das Anhalten undAumlndern der Lautstaumlrke falls Audioabgespielt wird Das kann man zuRecht kritisch sehen Uumlberdies wer-den auch Benachrichtigungen einge-blendet was allerdings abschaltbar istDoch es ist paradox dass ausgerech-net eine Funktion bei der es keiner Op-tion bedarf ndash die Privatsphaumlre gebietetes dass keinerlei Benachrichtigungenin Abwesenheit des Benutzers ange-zeigt werden ndash eine Option besitzt undauch noch die falsche Standardeinstel-lung hat waumlhrend das GNOME-Teamsonst jegliche individuellen Einstellun-gen verweigert jedenfalls in der grafi-schen Oberflaumlche

Eine der wichtigsten Neuerungen ist ferner dieUumlberarbeitung der Benachrichtigungen Fruumlherwurden Benachrichtigungen am oberen Bild-schirmrand unter der Systemleiste eingeblendetnun haben sie eine eigene Leiste am unterenBildschirmrand erhalten die aber nur eingeblen-det wird wenn man mit der Maus fuumlr einen Mo-ment an den unteren Bildschirmrand faumlhrt Wenndie Leiste eingeblendet wird uumlberlappt sie sichnicht mit den Bildschirminhalten sondern schiebtdiese nach oben Die Elemente in der Leiste wur-den groumlszliger klarer und verschieben sich nichtDie Benachrichtigungen selbst koumlnnen geschlos-sen werden und einige davon bieten die Moumlg-lichkeit direkt auf sie zu reagieren beispielswei-se durch Eingabe einer Antwort in ein Instant-Messaging-System Wenn man mit einer Anwen-dung im Vollbildmodus arbeitet oder ein Spielspielt werden nur wichtige Nachrichten ange-zeigt die anderen werden erst spaumlter praumlsentiertWie sich diese Aumlnderung in der Praxis bewaumlhrtkann dieser Test nicht aufzeigen

Der Standard-Webbrowser unter GNOME istFirefox 180 nicht der mit GNOME mitgelie-ferte Der Dateimanager Files ehemals Nauti-lus erhielt eine stark verbesserte Suchfunktionleichten Zugriff auf kuumlrzlich benutzte Dateienverbesserte Werkzeug- und Seitenleisten bes-sere Menuumlorganisation und Optionen zum Ver-schieben oder Kopieren an einen ausgewaumlhl-ten Ort Allerdings wurden auch Funktionen ent-fernt die von einigen Benutzern geschaumltzt wur-den Der Webbrowser Web erhielt eine Uumlbersichtwie sie auch andere Browser bieten und einen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 7

DISTRIBUTION

Desktop von GNOME 36 mit Anwendungen

verbesserten Vollbildmodus Weitere erwaumlhnens-werte Verbesserungen sind die vollstaumlndige Inte-gration von Funktionen zur Barrierefreiheit alsozur Unterstuumltzung von Anwendern die verschie-dene Arten von Behinderungen aufweisen unddie Integration von alternativen Eingabemetho-den wie sie zur Eingabe vieler nichteuropaumlischerSchriften benoumltigt werden

Die GNOME-Shell kann dank Software-Rendering auf jeder Hardware laufen derFallback-Modus steht optional aber noch zurVerfuumlgung Im Gegensatz zu Unity unter Ubuntu1210 ist das Software-Rendering aber einiger-maszligen schnell und durchaus noch benutzbardoch beim Abspielen von Videos versagt es Dasglobale Menuuml fuumlr Anwendungen ist weiterhinnicht mit der Tastatur erreichbar und Tasten-kuumlrzel fuumlr die Menuumlpunkte fehlen Weiter fehltes an Moumlglichkeiten GNOME nach eigenen

Anwendungsuumlbersicht in der GNOME-Shell

Vorstellungen zu konfigurieren Zum Gluumlck ist esmoumlglich uumlber Erweiterungen der GNOME-Shelleiniges zu aumlndern und einige dieser Erweiterun-gen sind uumlber die Paketverwaltung verfuumlgbar

Die neue Anwendung Boxes enttaumluscht durcheinen gravierenden Mangel an Einstellungen Vir-tuelle Maschinen sind komplexe Gebilde mit vie-len Optionen da koumlnnen die wenigen Optionendie Boxes bietet nur einige voumlllig anspruchslo-se Faumllle abdecken Aumlhnlich primitiv ist die Doku-mentenverwaltung die zudem nutzlos ist wennman nicht bereit ist Dokumente in irgendwelcheClouds zu stellen

KDEKDE ist in Version 49 enthalten aber jetztnur noch ein bdquoSpinldquo von Fedora Es gibt ei-ne KDE-Live-CD aber keine Installations-DVDmehr Zur Installation verwendet man jetzt die

Desktop von KDE 49

Fedora-Installations-DVD und bei der Software-Auswahl waumlhlt man KDE sowie die benoumltigtenAnwendungen aus Den Umfang der installiertenKDE-Anwendungen bestimmt man damit selbst

KDE 49 setzt noch mehr auf Qt Quick Insge-samt halten sich die groumlszligeren Aumlnderungen ge-genuumlber KDE 48 in Grenzen Eine Reihe vonVerbesserungen gab es im Dateimanager Dol-phin und in der Terminal-Emulation Konsole Vie-le weitere Anwendungen und Spiele bekamenkleinere neue Funktionen und Verbesserungen

Die Aktivitaumlten wurden staumlrker mit Dateien Fens-tern und anderen Ressourcen integriert Es solljetzt leichter sein Dateien und Fenster einer Ak-tivitaumlt zuzuordnen und so die eigenen Arbeitsflauml-chen passender zu organisieren Die Ordneran-sicht kann nun Dateien anzeigen die zu einer Ak-tivitaumlt gehoumlren und es so erleichtern die Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 8

DISTRIBUTION

Desktop von KDE 49 mit Anwendungen

in sinnvolle Zusammenhaumlnge zu stellen PrivateAktivitaumlten koumlnnen verschluumlsselt werden DerWindow-Manager KWin erhielt Aumlnderungen sodass man Fensterregeln fuumlr Aktivitaumlten definierenkann

KDE ist im Prinzip der exakte Gegenpol zuGNOME Hier sind die traditionellen Bedienele-mente unbeschaumldigt erhalten und es gibt Einstel-lungsmoumlglichkeiten bis zum kleinsten Detail DiePlasma-Oberflaumlche fuumlr Mobilgeraumlte ist vollstaumln-dig separat von der Desktop-Variante und kanndiese daher auch nicht beeintraumlchtigen Die An-wendungen bieten einen groszligen Funktionsum-fang und sind konfigurier- und erweiterbar Natuumlr-lich gibt es bisweilen andere freie Anwendungen

die den KDE-Anwendungen uumlber-legen sind oder von einigen Be-nutzern bevorzugt werden aberviele KDE-Anwendungen sind gutund nuumltzlich

Die Kritikpunkte an KDE sind die-selben wie eh und je KDEPIMwird des oumlfteren kritisiert beson-ders KMail Da ich selbst noch nieKMail-Benutzer war kann ich da-zu nichts weiter sagen aber essieht so aus als ob die KDEPIM-Entwickler einiges an der Ro-bustheit der Software verbessernmuumlssten um ihren Ruf wiederherzustellen Aktivitaumlten sind trotzaller Verbesserungen in den letz-ten Versionen etwas was von

vielen nur als unnuumltze Komplexitaumlt angesehenwird weil sie keinen Nutzen erkennen Ich dach-te dass man mit Aktivitaumlten eine Gruppe vonAnwendungen gemeinsam starten und stoppenkoumlnnte das koumlnnte wirklich nuumltzlich sein Tat-saumlchlich sind Aktivitaumlten die man einmal definierthat immer vorhanden Man kann sie zwar stop-pen aber ihre Anwendungen laufen weiter Spei-cherplatz laumlsst sich so offenbar nicht sparen Wel-chen Nutzen aber haben sie dann den man mitvirtuellen Desktops nicht erzielen koumlnnte Leidersind derzeit Menuumlpunkte und Optionen zu Aktivi-taumlten uumlberall in Plasma vorhanden angefangenmit dem Button oben rechts auf dem Desktopder sich nicht entfernen laumlsst Es sollte eine Moumlg-lichkeit geben alle Optionen auszublenden

Ein weiteres Problem werden wohl viele Benut-zer schon erlebt haben die sich an einem frischinstallierten KDE einloggen wollten Man kommtnicht weit der Desktop stuumlrzt einfach ab DerGrund ist der dass standardmaumlszligig zahlreiche Ef-fekte eingeschaltet sind und je nach Hardwareund Grafiktreiber kann da Vieles schiefgehenDie Loumlsung besteht darin sich im bdquoabgesichertenModusldquo einzuloggen und die Effekte abzuschal-ten Korrekt waumlre alle Effekte standardmaumlszligig ab-zuschalten so wie es beispielsweise Suse LinuxEnterprise macht Wenn ein Benutzer Effekte ak-tiviert dann auf eigenes Risiko und wenn daseinen Absturz zur Folge hat sollte ihm dann klarsein woran es lag

Multimedia im Browser und DesktopWegen der Softwarepatente in den USA kannFedora ebenso wie die meisten anderen Dis-tributionen nur wenige Medienformate abspie-len da es viele benoumltigte Codecs nicht mitliefernkann Wenn man versucht eine MP3- oder Vi-deodatei abzuspielen dann bieten die gaumlngigenPlayer aber die Option an uumlber die Paketverwal-tung nach passenden Plug-ins zu suchen

Damit die Suche in der Paketverwaltung Aus-sicht auf Erfolg hat muss man vorher die zusaumltz-lichen Repositories von RPM Fusion eintragenDas muss man wissen oder durch Suchen her-ausfinden Die Repositories kann man eintragenindem man die Webseite von RPM Fusion [15]besucht Von dieser kann man Pakete installie-ren die die Repositories hinzufuumlgen Dies gilt fuumlrGNOME wie fuumlr KDE

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 9

DISTRIBUTION

Nach dieser Vorbereitung sollten die Player un-ter GNOME und KDE in der Lage sein die be-noumltigten Plug-ins selbsttaumltig zu installieren Merk-wuumlrdigerweise hat Totem aber ein Problem wennman ausgerechnet mit der Suche nach einemMP3-Plug-in anfaumlngt und noch keine Codecs in-stalliert sind ndash diese Suche schlaumlgt fehl Bei Vi-deoformaten funktioniert es aber Am schnellstenund einfachsten ist allerdings eine manuelle In-stallation der GStreamer-Plugins insbesonderegstreamer-ugly und gstreamer-ffmpeg Dennwenn man die Plug-ins von Totem installierenlaumlsst treten wie schon in der Vorversion eineReihe von Merkwuumlrdigkeiten auf

1 Nach der Installation muss Totem neu gestar-tet werden sonst sieht er die neuen Plug-insnicht

2 Das Spiel mit Suchen und Installieren mussggf mehrmals wiederholt werden denn dasProgramm scheint unfaumlhig zu sein alle benouml-tigten Codecs auf einmal zu ermitteln

3 Zur Installation ist die Eingabe des eige-nen Passworts noumltig Trotz korrekter Einga-be schreibt die Dialogbox jedoch bdquoEntschuldi-gung das hat nicht geklapptldquo nur um dannfortzufahren und die Pakete korrekt zu instal-lieren

Totem erscheint bei Installation von DVDs auchunter KDE als Standard-Medienplayer auch fuumlrMP3-Dateien Das haumlngt wohl damit zusam-men dass bei der KDE-Installation eine Men-ge GNOME-Pakete mitinstalliert werden Dragon-player ist als Alternative installiert

Die Flash-Situation in den Browsern bleibt mittel-maumlszligig Ohne den Adobe Flash Player geht nichtallzuviel Nichts hat sich bei Gnash getan dasbei Version 0810 blieb Es kann viele Flash-Videos im Web nicht abspielen Die freie Alterna-tive Lightspark ist jetzt in Version 071 in den Re-positories von RPM Fusion enthalten und kannvermutlich einige Videos mehr abspielen Kon-queror der Standard-Browser unter KDE stuumlrz-te beim Versuch ein Youtube-Video abzuspielenab Offensichtlich verwendet man besser einenanderen Browser unter KDE

Bei der Installation des Adobe Flash Playerskann man aumlhnlich vorgehen wie bei RPM Fu-sion Zunaumlchst laumldt man von Adobe eine RPM-Datei herunter die das Repository anlegt Dannkann man uumlber die Paketverwaltung das eigentli-che Plug-in installieren Die Alternative zu Flashdas WebM-Format sollte in Firefox seit Version 4kaum Probleme bereiten

Paketverwaltung und UpdatesWenig hat sich bei der Paketverwaltung getan In-stallation bzw Deinstallation und das Aktualisie-ren von Paketen sind weiterhin separate Anwen-dungen die aber auch von der Paketverwaltungaus aufgerufen werden koumlnnen Sie funktionie-ren normalerweise reibungslos und die Updateswenn sie auch zahlreich sind sind dank Delta-RPMs oft erstaunlich klein und schnell installiert

Die Paketverwaltung baut unter GNOME undKDE grundsaumltzlich auf PackageKit auf Die Pro-gramme ndash gpk-application 361 bzw apper 080

Installation von Updates in KDE von derBenachrichtigung aus

ndash sind komfortabel genug Etwas Vergleichba-res wie das Software Center von Ubuntu bietetFedora jedoch nicht

Etwas merkwuumlrdig ist dass man beim erstenUpdate gefragt wird ob man der Paketquel-le vertraut Eigentlich sollten die Schluumlssel derStandard-Repositories bereits vorinstalliert seinund Fedora sollte seinen eigenen Quellen auto-matisch vertrauen

FazitFedora 18 wurde von einigen Benutzern darun-ter sogar Alan Cox als die bisher schlechtesteVersion bezeichnet und das mag sogar zutreffenAllerdings muss man das relativieren Die Kritik

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 10

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 6: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DISTRIBUTION

sollen Stattdessen werden andere Dateien inetc benutzt

Einiges hat sich bei der Sicherheit getan Die In-stallation unterstuumltzt UEFI Secure Boot Der Dae-mon rngd der dem Kernel-Zufallsgenerator zu-saumltzliche Entropie zufuumlhren soll wird standard-maumlszligig installiert aber nicht gestartet Mit SELi-nux und virt-sandbox koumlnnen nun auch Dienstein sicheren Sandkaumlsten ausgefuumlhrt werden auchals Root Mit der Bibliothek libseccomp koumlnnenAnwendungen festlegen welche Systemaufrufesie ausfuumlhren wollen Qemu und KVM nutzendies zur Erhoumlhung ihrer Sicherheit Die Verwen-dung von PolicyKit wurde weiter ausgedehnt

Ein neues Kommandozeilenprogramm ssm (Sys-tem Storage Manager [11]) vereinheitlicht die Ver-waltung von Speichergeraumlten gleichguumlltig ob da-bei LVM RAID oder Btrfs zum Einsatz kommenDas Verzeichnis tmp wird als tmpfs im RAM rea-lisiert [12] was sich aber aumlndern laumlsst Aumlndernmuss man es aber nur wenn ein Programm ge-gen die Konventionen verstoumlszligt und groszlige Datei-en in tmp ablegt statt den Systempfad abzufra-gen oder als Fallback vartmp zu verwendenNeu ist FedFS [13] ein Mechanismus mit demman eine konsistente Sicht auf den Dateibaumvon verschiedenen Dateiservern einrichten kannEs ist allerdings noch im Status einer Vorschau

Firewalld [14] wird anstelle von iptables standard-maumlszligig als Firewall eingesetzt Dadurch wird dieFirewall dynamisch und benoumltigt fuumlr Aumlnderungenkeinen Neustart mehr Der Paketmanager DNFist erstmals als Alternative zu YUM verfuumlgbar In

Firewall-Konfiguration

einem kurzen Test arbeitete ermindestens genauso schnell wieYum dem man bekanntlich bis-weilen mehr Geschwindigkeitwuumlnscht und teilweise auch deut-lich schneller Yum besitzt aberwesentlich mehr Funktionen ver-mutlich ist DNF derzeit nur einExtra Systemtap ein umfangrei-ches Trace-System wurde aufVersion 2 aktualisiert auch dasTrace-System LTTng liegt in Ver-sion 20 vor

Fuumlr Entwickler gab es zahlrei-che Updates der Programmier-umgebungen beispielsweise Dund Haskell Unterstuumltzung fuumlr dieProgrammiersprache Clojure kamneu hinzu Perl (516) Python (33) Ruby onRails (32) und PHP wurden aktualisiert DiePower7-Plattform ppc64p7 wird nun unterstuumltztOwncloud ist jetzt in der Distribution enthaltenund Terminals koumlnnen 256 statt nur 8 Farben nut-zen

Auch im Bereich Virtualisierung und Cloud wur-de Fedora 18 erweitert OpenShift Origin ei-ne Platform-as-a-Service-Infrastruktur (PaaS)wurde hinzugefuumlgt Mit Eucalyptus lassen sichprivate Amazon-kompatible Clouds verwaltenDie Plattform OpenStack fuumlr Infrastructure-as-a-Service (IaaS) wurde auf die Version bdquoFolsomldquoaktualisiert die alternative IaaS-Plattform Eu-calyptus auf Version 31 Das Projekt Heat zur

Orchestrierung von Cloud-Anwendungen kamhinzu Virt Live Snapshots machen es moumlglichSchnappschuumlsse von virtuellen Maschinen unterQemu und libvirt zu machen ohne die Gastsys-teme anzuhalten oVirt wurde auf Version 31 ge-bracht und enthaumllt jetzt auch grafische Werkzeu-ge

Fedora 18 startet etwa genauso schnell wie seinVorgaumlnger Wie immer ist SELinux eingebundenund aktiviert Als normaler Benutzer merkt manuumlberhaupt nichts davon solange die Konfigurati-on korrekt ist In Fedora 18 wie auch in der Vor-version trat kein sichtbares Problem im Zusam-menhang mit SELinux auf Fuumlr den Fall dass einProblem auftritt sei es nach der Installation von

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 6

DISTRIBUTION

zusaumltzlicher Software oder anderen Aumlnderungensteht ein Diagnosewerkzeug zur Verfuumlgung

KDE benoumltigt in Fedora 18 direkt nach dem Startmit einem geoumlffneten Terminal-Fenster etwa 420MB RAM Gnome dagegen hat sich auf 470MB aufgeblaumlht hauptsaumlchlich durch die GNOME-Shell Bei der Geschwindigkeit laumlsst sich keinnennenswerter Unterschied zwischen den Desk-tops feststellen sofern genug RAM vorhanden istDie Angaben zum Speicherverbrauch sind nurals Anhaltswerte zu sehen die sich je nach Hard-ware und Messzeitpunkt erheblich unterscheidenkoumlnnen

GNOMEGNOME 36 ist der Standard-Desktop von Fedo-ra 18 wenn man nicht ausdruumlcklich KDE Xfce

Der Login-Bildschirm von GNOME

oder anderes auswaumlhlt Gegenuumlber GNOME 34ist der Menuumlpunkt Ausschalten anstelle des alsnutzlos kritisierten Suspendieren zuruumlckgekehrtDie Aktivitaumltenuumlbersicht der GNOME-Shell be-sitzt nun einen Gitter-Button in der Startleiste(Dash) mit dem man angeblich schnell zu ein-zelnen Anwendungen wechseln kann Schnellist daran allerdings nichts weil man dennochmeistens nach der Anwendung suchen mussDie Eingabe von Suchbegriffen soll durch dasHervorheben der Suchleiste vereinfacht werden

Das Sperren des Bildschirms folgt nun demParadigma einer Jalousie die vor dem Bild-schirm heruntergezogen wird und wurde direktin die GNOME-Shell eingebaut Der gesperrteBildschirm zeigt eine groszlige Uhr Anpassungs-moumlglichkeiten fehlen Der gesperrte Bildschirm

erlaubt aber auch das Anhalten undAumlndern der Lautstaumlrke falls Audioabgespielt wird Das kann man zuRecht kritisch sehen Uumlberdies wer-den auch Benachrichtigungen einge-blendet was allerdings abschaltbar istDoch es ist paradox dass ausgerech-net eine Funktion bei der es keiner Op-tion bedarf ndash die Privatsphaumlre gebietetes dass keinerlei Benachrichtigungenin Abwesenheit des Benutzers ange-zeigt werden ndash eine Option besitzt undauch noch die falsche Standardeinstel-lung hat waumlhrend das GNOME-Teamsonst jegliche individuellen Einstellun-gen verweigert jedenfalls in der grafi-schen Oberflaumlche

Eine der wichtigsten Neuerungen ist ferner dieUumlberarbeitung der Benachrichtigungen Fruumlherwurden Benachrichtigungen am oberen Bild-schirmrand unter der Systemleiste eingeblendetnun haben sie eine eigene Leiste am unterenBildschirmrand erhalten die aber nur eingeblen-det wird wenn man mit der Maus fuumlr einen Mo-ment an den unteren Bildschirmrand faumlhrt Wenndie Leiste eingeblendet wird uumlberlappt sie sichnicht mit den Bildschirminhalten sondern schiebtdiese nach oben Die Elemente in der Leiste wur-den groumlszliger klarer und verschieben sich nichtDie Benachrichtigungen selbst koumlnnen geschlos-sen werden und einige davon bieten die Moumlg-lichkeit direkt auf sie zu reagieren beispielswei-se durch Eingabe einer Antwort in ein Instant-Messaging-System Wenn man mit einer Anwen-dung im Vollbildmodus arbeitet oder ein Spielspielt werden nur wichtige Nachrichten ange-zeigt die anderen werden erst spaumlter praumlsentiertWie sich diese Aumlnderung in der Praxis bewaumlhrtkann dieser Test nicht aufzeigen

Der Standard-Webbrowser unter GNOME istFirefox 180 nicht der mit GNOME mitgelie-ferte Der Dateimanager Files ehemals Nauti-lus erhielt eine stark verbesserte Suchfunktionleichten Zugriff auf kuumlrzlich benutzte Dateienverbesserte Werkzeug- und Seitenleisten bes-sere Menuumlorganisation und Optionen zum Ver-schieben oder Kopieren an einen ausgewaumlhl-ten Ort Allerdings wurden auch Funktionen ent-fernt die von einigen Benutzern geschaumltzt wur-den Der Webbrowser Web erhielt eine Uumlbersichtwie sie auch andere Browser bieten und einen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 7

DISTRIBUTION

Desktop von GNOME 36 mit Anwendungen

verbesserten Vollbildmodus Weitere erwaumlhnens-werte Verbesserungen sind die vollstaumlndige Inte-gration von Funktionen zur Barrierefreiheit alsozur Unterstuumltzung von Anwendern die verschie-dene Arten von Behinderungen aufweisen unddie Integration von alternativen Eingabemetho-den wie sie zur Eingabe vieler nichteuropaumlischerSchriften benoumltigt werden

Die GNOME-Shell kann dank Software-Rendering auf jeder Hardware laufen derFallback-Modus steht optional aber noch zurVerfuumlgung Im Gegensatz zu Unity unter Ubuntu1210 ist das Software-Rendering aber einiger-maszligen schnell und durchaus noch benutzbardoch beim Abspielen von Videos versagt es Dasglobale Menuuml fuumlr Anwendungen ist weiterhinnicht mit der Tastatur erreichbar und Tasten-kuumlrzel fuumlr die Menuumlpunkte fehlen Weiter fehltes an Moumlglichkeiten GNOME nach eigenen

Anwendungsuumlbersicht in der GNOME-Shell

Vorstellungen zu konfigurieren Zum Gluumlck ist esmoumlglich uumlber Erweiterungen der GNOME-Shelleiniges zu aumlndern und einige dieser Erweiterun-gen sind uumlber die Paketverwaltung verfuumlgbar

Die neue Anwendung Boxes enttaumluscht durcheinen gravierenden Mangel an Einstellungen Vir-tuelle Maschinen sind komplexe Gebilde mit vie-len Optionen da koumlnnen die wenigen Optionendie Boxes bietet nur einige voumlllig anspruchslo-se Faumllle abdecken Aumlhnlich primitiv ist die Doku-mentenverwaltung die zudem nutzlos ist wennman nicht bereit ist Dokumente in irgendwelcheClouds zu stellen

KDEKDE ist in Version 49 enthalten aber jetztnur noch ein bdquoSpinldquo von Fedora Es gibt ei-ne KDE-Live-CD aber keine Installations-DVDmehr Zur Installation verwendet man jetzt die

Desktop von KDE 49

Fedora-Installations-DVD und bei der Software-Auswahl waumlhlt man KDE sowie die benoumltigtenAnwendungen aus Den Umfang der installiertenKDE-Anwendungen bestimmt man damit selbst

KDE 49 setzt noch mehr auf Qt Quick Insge-samt halten sich die groumlszligeren Aumlnderungen ge-genuumlber KDE 48 in Grenzen Eine Reihe vonVerbesserungen gab es im Dateimanager Dol-phin und in der Terminal-Emulation Konsole Vie-le weitere Anwendungen und Spiele bekamenkleinere neue Funktionen und Verbesserungen

Die Aktivitaumlten wurden staumlrker mit Dateien Fens-tern und anderen Ressourcen integriert Es solljetzt leichter sein Dateien und Fenster einer Ak-tivitaumlt zuzuordnen und so die eigenen Arbeitsflauml-chen passender zu organisieren Die Ordneran-sicht kann nun Dateien anzeigen die zu einer Ak-tivitaumlt gehoumlren und es so erleichtern die Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 8

DISTRIBUTION

Desktop von KDE 49 mit Anwendungen

in sinnvolle Zusammenhaumlnge zu stellen PrivateAktivitaumlten koumlnnen verschluumlsselt werden DerWindow-Manager KWin erhielt Aumlnderungen sodass man Fensterregeln fuumlr Aktivitaumlten definierenkann

KDE ist im Prinzip der exakte Gegenpol zuGNOME Hier sind die traditionellen Bedienele-mente unbeschaumldigt erhalten und es gibt Einstel-lungsmoumlglichkeiten bis zum kleinsten Detail DiePlasma-Oberflaumlche fuumlr Mobilgeraumlte ist vollstaumln-dig separat von der Desktop-Variante und kanndiese daher auch nicht beeintraumlchtigen Die An-wendungen bieten einen groszligen Funktionsum-fang und sind konfigurier- und erweiterbar Natuumlr-lich gibt es bisweilen andere freie Anwendungen

die den KDE-Anwendungen uumlber-legen sind oder von einigen Be-nutzern bevorzugt werden aberviele KDE-Anwendungen sind gutund nuumltzlich

Die Kritikpunkte an KDE sind die-selben wie eh und je KDEPIMwird des oumlfteren kritisiert beson-ders KMail Da ich selbst noch nieKMail-Benutzer war kann ich da-zu nichts weiter sagen aber essieht so aus als ob die KDEPIM-Entwickler einiges an der Ro-bustheit der Software verbessernmuumlssten um ihren Ruf wiederherzustellen Aktivitaumlten sind trotzaller Verbesserungen in den letz-ten Versionen etwas was von

vielen nur als unnuumltze Komplexitaumlt angesehenwird weil sie keinen Nutzen erkennen Ich dach-te dass man mit Aktivitaumlten eine Gruppe vonAnwendungen gemeinsam starten und stoppenkoumlnnte das koumlnnte wirklich nuumltzlich sein Tat-saumlchlich sind Aktivitaumlten die man einmal definierthat immer vorhanden Man kann sie zwar stop-pen aber ihre Anwendungen laufen weiter Spei-cherplatz laumlsst sich so offenbar nicht sparen Wel-chen Nutzen aber haben sie dann den man mitvirtuellen Desktops nicht erzielen koumlnnte Leidersind derzeit Menuumlpunkte und Optionen zu Aktivi-taumlten uumlberall in Plasma vorhanden angefangenmit dem Button oben rechts auf dem Desktopder sich nicht entfernen laumlsst Es sollte eine Moumlg-lichkeit geben alle Optionen auszublenden

Ein weiteres Problem werden wohl viele Benut-zer schon erlebt haben die sich an einem frischinstallierten KDE einloggen wollten Man kommtnicht weit der Desktop stuumlrzt einfach ab DerGrund ist der dass standardmaumlszligig zahlreiche Ef-fekte eingeschaltet sind und je nach Hardwareund Grafiktreiber kann da Vieles schiefgehenDie Loumlsung besteht darin sich im bdquoabgesichertenModusldquo einzuloggen und die Effekte abzuschal-ten Korrekt waumlre alle Effekte standardmaumlszligig ab-zuschalten so wie es beispielsweise Suse LinuxEnterprise macht Wenn ein Benutzer Effekte ak-tiviert dann auf eigenes Risiko und wenn daseinen Absturz zur Folge hat sollte ihm dann klarsein woran es lag

Multimedia im Browser und DesktopWegen der Softwarepatente in den USA kannFedora ebenso wie die meisten anderen Dis-tributionen nur wenige Medienformate abspie-len da es viele benoumltigte Codecs nicht mitliefernkann Wenn man versucht eine MP3- oder Vi-deodatei abzuspielen dann bieten die gaumlngigenPlayer aber die Option an uumlber die Paketverwal-tung nach passenden Plug-ins zu suchen

Damit die Suche in der Paketverwaltung Aus-sicht auf Erfolg hat muss man vorher die zusaumltz-lichen Repositories von RPM Fusion eintragenDas muss man wissen oder durch Suchen her-ausfinden Die Repositories kann man eintragenindem man die Webseite von RPM Fusion [15]besucht Von dieser kann man Pakete installie-ren die die Repositories hinzufuumlgen Dies gilt fuumlrGNOME wie fuumlr KDE

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 9

DISTRIBUTION

Nach dieser Vorbereitung sollten die Player un-ter GNOME und KDE in der Lage sein die be-noumltigten Plug-ins selbsttaumltig zu installieren Merk-wuumlrdigerweise hat Totem aber ein Problem wennman ausgerechnet mit der Suche nach einemMP3-Plug-in anfaumlngt und noch keine Codecs in-stalliert sind ndash diese Suche schlaumlgt fehl Bei Vi-deoformaten funktioniert es aber Am schnellstenund einfachsten ist allerdings eine manuelle In-stallation der GStreamer-Plugins insbesonderegstreamer-ugly und gstreamer-ffmpeg Dennwenn man die Plug-ins von Totem installierenlaumlsst treten wie schon in der Vorversion eineReihe von Merkwuumlrdigkeiten auf

1 Nach der Installation muss Totem neu gestar-tet werden sonst sieht er die neuen Plug-insnicht

2 Das Spiel mit Suchen und Installieren mussggf mehrmals wiederholt werden denn dasProgramm scheint unfaumlhig zu sein alle benouml-tigten Codecs auf einmal zu ermitteln

3 Zur Installation ist die Eingabe des eige-nen Passworts noumltig Trotz korrekter Einga-be schreibt die Dialogbox jedoch bdquoEntschuldi-gung das hat nicht geklapptldquo nur um dannfortzufahren und die Pakete korrekt zu instal-lieren

Totem erscheint bei Installation von DVDs auchunter KDE als Standard-Medienplayer auch fuumlrMP3-Dateien Das haumlngt wohl damit zusam-men dass bei der KDE-Installation eine Men-ge GNOME-Pakete mitinstalliert werden Dragon-player ist als Alternative installiert

Die Flash-Situation in den Browsern bleibt mittel-maumlszligig Ohne den Adobe Flash Player geht nichtallzuviel Nichts hat sich bei Gnash getan dasbei Version 0810 blieb Es kann viele Flash-Videos im Web nicht abspielen Die freie Alterna-tive Lightspark ist jetzt in Version 071 in den Re-positories von RPM Fusion enthalten und kannvermutlich einige Videos mehr abspielen Kon-queror der Standard-Browser unter KDE stuumlrz-te beim Versuch ein Youtube-Video abzuspielenab Offensichtlich verwendet man besser einenanderen Browser unter KDE

Bei der Installation des Adobe Flash Playerskann man aumlhnlich vorgehen wie bei RPM Fu-sion Zunaumlchst laumldt man von Adobe eine RPM-Datei herunter die das Repository anlegt Dannkann man uumlber die Paketverwaltung das eigentli-che Plug-in installieren Die Alternative zu Flashdas WebM-Format sollte in Firefox seit Version 4kaum Probleme bereiten

Paketverwaltung und UpdatesWenig hat sich bei der Paketverwaltung getan In-stallation bzw Deinstallation und das Aktualisie-ren von Paketen sind weiterhin separate Anwen-dungen die aber auch von der Paketverwaltungaus aufgerufen werden koumlnnen Sie funktionie-ren normalerweise reibungslos und die Updateswenn sie auch zahlreich sind sind dank Delta-RPMs oft erstaunlich klein und schnell installiert

Die Paketverwaltung baut unter GNOME undKDE grundsaumltzlich auf PackageKit auf Die Pro-gramme ndash gpk-application 361 bzw apper 080

Installation von Updates in KDE von derBenachrichtigung aus

ndash sind komfortabel genug Etwas Vergleichba-res wie das Software Center von Ubuntu bietetFedora jedoch nicht

Etwas merkwuumlrdig ist dass man beim erstenUpdate gefragt wird ob man der Paketquel-le vertraut Eigentlich sollten die Schluumlssel derStandard-Repositories bereits vorinstalliert seinund Fedora sollte seinen eigenen Quellen auto-matisch vertrauen

FazitFedora 18 wurde von einigen Benutzern darun-ter sogar Alan Cox als die bisher schlechtesteVersion bezeichnet und das mag sogar zutreffenAllerdings muss man das relativieren Die Kritik

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 10

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 7: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DISTRIBUTION

zusaumltzlicher Software oder anderen Aumlnderungensteht ein Diagnosewerkzeug zur Verfuumlgung

KDE benoumltigt in Fedora 18 direkt nach dem Startmit einem geoumlffneten Terminal-Fenster etwa 420MB RAM Gnome dagegen hat sich auf 470MB aufgeblaumlht hauptsaumlchlich durch die GNOME-Shell Bei der Geschwindigkeit laumlsst sich keinnennenswerter Unterschied zwischen den Desk-tops feststellen sofern genug RAM vorhanden istDie Angaben zum Speicherverbrauch sind nurals Anhaltswerte zu sehen die sich je nach Hard-ware und Messzeitpunkt erheblich unterscheidenkoumlnnen

GNOMEGNOME 36 ist der Standard-Desktop von Fedo-ra 18 wenn man nicht ausdruumlcklich KDE Xfce

Der Login-Bildschirm von GNOME

oder anderes auswaumlhlt Gegenuumlber GNOME 34ist der Menuumlpunkt Ausschalten anstelle des alsnutzlos kritisierten Suspendieren zuruumlckgekehrtDie Aktivitaumltenuumlbersicht der GNOME-Shell be-sitzt nun einen Gitter-Button in der Startleiste(Dash) mit dem man angeblich schnell zu ein-zelnen Anwendungen wechseln kann Schnellist daran allerdings nichts weil man dennochmeistens nach der Anwendung suchen mussDie Eingabe von Suchbegriffen soll durch dasHervorheben der Suchleiste vereinfacht werden

Das Sperren des Bildschirms folgt nun demParadigma einer Jalousie die vor dem Bild-schirm heruntergezogen wird und wurde direktin die GNOME-Shell eingebaut Der gesperrteBildschirm zeigt eine groszlige Uhr Anpassungs-moumlglichkeiten fehlen Der gesperrte Bildschirm

erlaubt aber auch das Anhalten undAumlndern der Lautstaumlrke falls Audioabgespielt wird Das kann man zuRecht kritisch sehen Uumlberdies wer-den auch Benachrichtigungen einge-blendet was allerdings abschaltbar istDoch es ist paradox dass ausgerech-net eine Funktion bei der es keiner Op-tion bedarf ndash die Privatsphaumlre gebietetes dass keinerlei Benachrichtigungenin Abwesenheit des Benutzers ange-zeigt werden ndash eine Option besitzt undauch noch die falsche Standardeinstel-lung hat waumlhrend das GNOME-Teamsonst jegliche individuellen Einstellun-gen verweigert jedenfalls in der grafi-schen Oberflaumlche

Eine der wichtigsten Neuerungen ist ferner dieUumlberarbeitung der Benachrichtigungen Fruumlherwurden Benachrichtigungen am oberen Bild-schirmrand unter der Systemleiste eingeblendetnun haben sie eine eigene Leiste am unterenBildschirmrand erhalten die aber nur eingeblen-det wird wenn man mit der Maus fuumlr einen Mo-ment an den unteren Bildschirmrand faumlhrt Wenndie Leiste eingeblendet wird uumlberlappt sie sichnicht mit den Bildschirminhalten sondern schiebtdiese nach oben Die Elemente in der Leiste wur-den groumlszliger klarer und verschieben sich nichtDie Benachrichtigungen selbst koumlnnen geschlos-sen werden und einige davon bieten die Moumlg-lichkeit direkt auf sie zu reagieren beispielswei-se durch Eingabe einer Antwort in ein Instant-Messaging-System Wenn man mit einer Anwen-dung im Vollbildmodus arbeitet oder ein Spielspielt werden nur wichtige Nachrichten ange-zeigt die anderen werden erst spaumlter praumlsentiertWie sich diese Aumlnderung in der Praxis bewaumlhrtkann dieser Test nicht aufzeigen

Der Standard-Webbrowser unter GNOME istFirefox 180 nicht der mit GNOME mitgelie-ferte Der Dateimanager Files ehemals Nauti-lus erhielt eine stark verbesserte Suchfunktionleichten Zugriff auf kuumlrzlich benutzte Dateienverbesserte Werkzeug- und Seitenleisten bes-sere Menuumlorganisation und Optionen zum Ver-schieben oder Kopieren an einen ausgewaumlhl-ten Ort Allerdings wurden auch Funktionen ent-fernt die von einigen Benutzern geschaumltzt wur-den Der Webbrowser Web erhielt eine Uumlbersichtwie sie auch andere Browser bieten und einen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 7

DISTRIBUTION

Desktop von GNOME 36 mit Anwendungen

verbesserten Vollbildmodus Weitere erwaumlhnens-werte Verbesserungen sind die vollstaumlndige Inte-gration von Funktionen zur Barrierefreiheit alsozur Unterstuumltzung von Anwendern die verschie-dene Arten von Behinderungen aufweisen unddie Integration von alternativen Eingabemetho-den wie sie zur Eingabe vieler nichteuropaumlischerSchriften benoumltigt werden

Die GNOME-Shell kann dank Software-Rendering auf jeder Hardware laufen derFallback-Modus steht optional aber noch zurVerfuumlgung Im Gegensatz zu Unity unter Ubuntu1210 ist das Software-Rendering aber einiger-maszligen schnell und durchaus noch benutzbardoch beim Abspielen von Videos versagt es Dasglobale Menuuml fuumlr Anwendungen ist weiterhinnicht mit der Tastatur erreichbar und Tasten-kuumlrzel fuumlr die Menuumlpunkte fehlen Weiter fehltes an Moumlglichkeiten GNOME nach eigenen

Anwendungsuumlbersicht in der GNOME-Shell

Vorstellungen zu konfigurieren Zum Gluumlck ist esmoumlglich uumlber Erweiterungen der GNOME-Shelleiniges zu aumlndern und einige dieser Erweiterun-gen sind uumlber die Paketverwaltung verfuumlgbar

Die neue Anwendung Boxes enttaumluscht durcheinen gravierenden Mangel an Einstellungen Vir-tuelle Maschinen sind komplexe Gebilde mit vie-len Optionen da koumlnnen die wenigen Optionendie Boxes bietet nur einige voumlllig anspruchslo-se Faumllle abdecken Aumlhnlich primitiv ist die Doku-mentenverwaltung die zudem nutzlos ist wennman nicht bereit ist Dokumente in irgendwelcheClouds zu stellen

KDEKDE ist in Version 49 enthalten aber jetztnur noch ein bdquoSpinldquo von Fedora Es gibt ei-ne KDE-Live-CD aber keine Installations-DVDmehr Zur Installation verwendet man jetzt die

Desktop von KDE 49

Fedora-Installations-DVD und bei der Software-Auswahl waumlhlt man KDE sowie die benoumltigtenAnwendungen aus Den Umfang der installiertenKDE-Anwendungen bestimmt man damit selbst

KDE 49 setzt noch mehr auf Qt Quick Insge-samt halten sich die groumlszligeren Aumlnderungen ge-genuumlber KDE 48 in Grenzen Eine Reihe vonVerbesserungen gab es im Dateimanager Dol-phin und in der Terminal-Emulation Konsole Vie-le weitere Anwendungen und Spiele bekamenkleinere neue Funktionen und Verbesserungen

Die Aktivitaumlten wurden staumlrker mit Dateien Fens-tern und anderen Ressourcen integriert Es solljetzt leichter sein Dateien und Fenster einer Ak-tivitaumlt zuzuordnen und so die eigenen Arbeitsflauml-chen passender zu organisieren Die Ordneran-sicht kann nun Dateien anzeigen die zu einer Ak-tivitaumlt gehoumlren und es so erleichtern die Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 8

DISTRIBUTION

Desktop von KDE 49 mit Anwendungen

in sinnvolle Zusammenhaumlnge zu stellen PrivateAktivitaumlten koumlnnen verschluumlsselt werden DerWindow-Manager KWin erhielt Aumlnderungen sodass man Fensterregeln fuumlr Aktivitaumlten definierenkann

KDE ist im Prinzip der exakte Gegenpol zuGNOME Hier sind die traditionellen Bedienele-mente unbeschaumldigt erhalten und es gibt Einstel-lungsmoumlglichkeiten bis zum kleinsten Detail DiePlasma-Oberflaumlche fuumlr Mobilgeraumlte ist vollstaumln-dig separat von der Desktop-Variante und kanndiese daher auch nicht beeintraumlchtigen Die An-wendungen bieten einen groszligen Funktionsum-fang und sind konfigurier- und erweiterbar Natuumlr-lich gibt es bisweilen andere freie Anwendungen

die den KDE-Anwendungen uumlber-legen sind oder von einigen Be-nutzern bevorzugt werden aberviele KDE-Anwendungen sind gutund nuumltzlich

Die Kritikpunkte an KDE sind die-selben wie eh und je KDEPIMwird des oumlfteren kritisiert beson-ders KMail Da ich selbst noch nieKMail-Benutzer war kann ich da-zu nichts weiter sagen aber essieht so aus als ob die KDEPIM-Entwickler einiges an der Ro-bustheit der Software verbessernmuumlssten um ihren Ruf wiederherzustellen Aktivitaumlten sind trotzaller Verbesserungen in den letz-ten Versionen etwas was von

vielen nur als unnuumltze Komplexitaumlt angesehenwird weil sie keinen Nutzen erkennen Ich dach-te dass man mit Aktivitaumlten eine Gruppe vonAnwendungen gemeinsam starten und stoppenkoumlnnte das koumlnnte wirklich nuumltzlich sein Tat-saumlchlich sind Aktivitaumlten die man einmal definierthat immer vorhanden Man kann sie zwar stop-pen aber ihre Anwendungen laufen weiter Spei-cherplatz laumlsst sich so offenbar nicht sparen Wel-chen Nutzen aber haben sie dann den man mitvirtuellen Desktops nicht erzielen koumlnnte Leidersind derzeit Menuumlpunkte und Optionen zu Aktivi-taumlten uumlberall in Plasma vorhanden angefangenmit dem Button oben rechts auf dem Desktopder sich nicht entfernen laumlsst Es sollte eine Moumlg-lichkeit geben alle Optionen auszublenden

Ein weiteres Problem werden wohl viele Benut-zer schon erlebt haben die sich an einem frischinstallierten KDE einloggen wollten Man kommtnicht weit der Desktop stuumlrzt einfach ab DerGrund ist der dass standardmaumlszligig zahlreiche Ef-fekte eingeschaltet sind und je nach Hardwareund Grafiktreiber kann da Vieles schiefgehenDie Loumlsung besteht darin sich im bdquoabgesichertenModusldquo einzuloggen und die Effekte abzuschal-ten Korrekt waumlre alle Effekte standardmaumlszligig ab-zuschalten so wie es beispielsweise Suse LinuxEnterprise macht Wenn ein Benutzer Effekte ak-tiviert dann auf eigenes Risiko und wenn daseinen Absturz zur Folge hat sollte ihm dann klarsein woran es lag

Multimedia im Browser und DesktopWegen der Softwarepatente in den USA kannFedora ebenso wie die meisten anderen Dis-tributionen nur wenige Medienformate abspie-len da es viele benoumltigte Codecs nicht mitliefernkann Wenn man versucht eine MP3- oder Vi-deodatei abzuspielen dann bieten die gaumlngigenPlayer aber die Option an uumlber die Paketverwal-tung nach passenden Plug-ins zu suchen

Damit die Suche in der Paketverwaltung Aus-sicht auf Erfolg hat muss man vorher die zusaumltz-lichen Repositories von RPM Fusion eintragenDas muss man wissen oder durch Suchen her-ausfinden Die Repositories kann man eintragenindem man die Webseite von RPM Fusion [15]besucht Von dieser kann man Pakete installie-ren die die Repositories hinzufuumlgen Dies gilt fuumlrGNOME wie fuumlr KDE

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 9

DISTRIBUTION

Nach dieser Vorbereitung sollten die Player un-ter GNOME und KDE in der Lage sein die be-noumltigten Plug-ins selbsttaumltig zu installieren Merk-wuumlrdigerweise hat Totem aber ein Problem wennman ausgerechnet mit der Suche nach einemMP3-Plug-in anfaumlngt und noch keine Codecs in-stalliert sind ndash diese Suche schlaumlgt fehl Bei Vi-deoformaten funktioniert es aber Am schnellstenund einfachsten ist allerdings eine manuelle In-stallation der GStreamer-Plugins insbesonderegstreamer-ugly und gstreamer-ffmpeg Dennwenn man die Plug-ins von Totem installierenlaumlsst treten wie schon in der Vorversion eineReihe von Merkwuumlrdigkeiten auf

1 Nach der Installation muss Totem neu gestar-tet werden sonst sieht er die neuen Plug-insnicht

2 Das Spiel mit Suchen und Installieren mussggf mehrmals wiederholt werden denn dasProgramm scheint unfaumlhig zu sein alle benouml-tigten Codecs auf einmal zu ermitteln

3 Zur Installation ist die Eingabe des eige-nen Passworts noumltig Trotz korrekter Einga-be schreibt die Dialogbox jedoch bdquoEntschuldi-gung das hat nicht geklapptldquo nur um dannfortzufahren und die Pakete korrekt zu instal-lieren

Totem erscheint bei Installation von DVDs auchunter KDE als Standard-Medienplayer auch fuumlrMP3-Dateien Das haumlngt wohl damit zusam-men dass bei der KDE-Installation eine Men-ge GNOME-Pakete mitinstalliert werden Dragon-player ist als Alternative installiert

Die Flash-Situation in den Browsern bleibt mittel-maumlszligig Ohne den Adobe Flash Player geht nichtallzuviel Nichts hat sich bei Gnash getan dasbei Version 0810 blieb Es kann viele Flash-Videos im Web nicht abspielen Die freie Alterna-tive Lightspark ist jetzt in Version 071 in den Re-positories von RPM Fusion enthalten und kannvermutlich einige Videos mehr abspielen Kon-queror der Standard-Browser unter KDE stuumlrz-te beim Versuch ein Youtube-Video abzuspielenab Offensichtlich verwendet man besser einenanderen Browser unter KDE

Bei der Installation des Adobe Flash Playerskann man aumlhnlich vorgehen wie bei RPM Fu-sion Zunaumlchst laumldt man von Adobe eine RPM-Datei herunter die das Repository anlegt Dannkann man uumlber die Paketverwaltung das eigentli-che Plug-in installieren Die Alternative zu Flashdas WebM-Format sollte in Firefox seit Version 4kaum Probleme bereiten

Paketverwaltung und UpdatesWenig hat sich bei der Paketverwaltung getan In-stallation bzw Deinstallation und das Aktualisie-ren von Paketen sind weiterhin separate Anwen-dungen die aber auch von der Paketverwaltungaus aufgerufen werden koumlnnen Sie funktionie-ren normalerweise reibungslos und die Updateswenn sie auch zahlreich sind sind dank Delta-RPMs oft erstaunlich klein und schnell installiert

Die Paketverwaltung baut unter GNOME undKDE grundsaumltzlich auf PackageKit auf Die Pro-gramme ndash gpk-application 361 bzw apper 080

Installation von Updates in KDE von derBenachrichtigung aus

ndash sind komfortabel genug Etwas Vergleichba-res wie das Software Center von Ubuntu bietetFedora jedoch nicht

Etwas merkwuumlrdig ist dass man beim erstenUpdate gefragt wird ob man der Paketquel-le vertraut Eigentlich sollten die Schluumlssel derStandard-Repositories bereits vorinstalliert seinund Fedora sollte seinen eigenen Quellen auto-matisch vertrauen

FazitFedora 18 wurde von einigen Benutzern darun-ter sogar Alan Cox als die bisher schlechtesteVersion bezeichnet und das mag sogar zutreffenAllerdings muss man das relativieren Die Kritik

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 10

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 8: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DISTRIBUTION

Desktop von GNOME 36 mit Anwendungen

verbesserten Vollbildmodus Weitere erwaumlhnens-werte Verbesserungen sind die vollstaumlndige Inte-gration von Funktionen zur Barrierefreiheit alsozur Unterstuumltzung von Anwendern die verschie-dene Arten von Behinderungen aufweisen unddie Integration von alternativen Eingabemetho-den wie sie zur Eingabe vieler nichteuropaumlischerSchriften benoumltigt werden

Die GNOME-Shell kann dank Software-Rendering auf jeder Hardware laufen derFallback-Modus steht optional aber noch zurVerfuumlgung Im Gegensatz zu Unity unter Ubuntu1210 ist das Software-Rendering aber einiger-maszligen schnell und durchaus noch benutzbardoch beim Abspielen von Videos versagt es Dasglobale Menuuml fuumlr Anwendungen ist weiterhinnicht mit der Tastatur erreichbar und Tasten-kuumlrzel fuumlr die Menuumlpunkte fehlen Weiter fehltes an Moumlglichkeiten GNOME nach eigenen

Anwendungsuumlbersicht in der GNOME-Shell

Vorstellungen zu konfigurieren Zum Gluumlck ist esmoumlglich uumlber Erweiterungen der GNOME-Shelleiniges zu aumlndern und einige dieser Erweiterun-gen sind uumlber die Paketverwaltung verfuumlgbar

Die neue Anwendung Boxes enttaumluscht durcheinen gravierenden Mangel an Einstellungen Vir-tuelle Maschinen sind komplexe Gebilde mit vie-len Optionen da koumlnnen die wenigen Optionendie Boxes bietet nur einige voumlllig anspruchslo-se Faumllle abdecken Aumlhnlich primitiv ist die Doku-mentenverwaltung die zudem nutzlos ist wennman nicht bereit ist Dokumente in irgendwelcheClouds zu stellen

KDEKDE ist in Version 49 enthalten aber jetztnur noch ein bdquoSpinldquo von Fedora Es gibt ei-ne KDE-Live-CD aber keine Installations-DVDmehr Zur Installation verwendet man jetzt die

Desktop von KDE 49

Fedora-Installations-DVD und bei der Software-Auswahl waumlhlt man KDE sowie die benoumltigtenAnwendungen aus Den Umfang der installiertenKDE-Anwendungen bestimmt man damit selbst

KDE 49 setzt noch mehr auf Qt Quick Insge-samt halten sich die groumlszligeren Aumlnderungen ge-genuumlber KDE 48 in Grenzen Eine Reihe vonVerbesserungen gab es im Dateimanager Dol-phin und in der Terminal-Emulation Konsole Vie-le weitere Anwendungen und Spiele bekamenkleinere neue Funktionen und Verbesserungen

Die Aktivitaumlten wurden staumlrker mit Dateien Fens-tern und anderen Ressourcen integriert Es solljetzt leichter sein Dateien und Fenster einer Ak-tivitaumlt zuzuordnen und so die eigenen Arbeitsflauml-chen passender zu organisieren Die Ordneran-sicht kann nun Dateien anzeigen die zu einer Ak-tivitaumlt gehoumlren und es so erleichtern die Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 8

DISTRIBUTION

Desktop von KDE 49 mit Anwendungen

in sinnvolle Zusammenhaumlnge zu stellen PrivateAktivitaumlten koumlnnen verschluumlsselt werden DerWindow-Manager KWin erhielt Aumlnderungen sodass man Fensterregeln fuumlr Aktivitaumlten definierenkann

KDE ist im Prinzip der exakte Gegenpol zuGNOME Hier sind die traditionellen Bedienele-mente unbeschaumldigt erhalten und es gibt Einstel-lungsmoumlglichkeiten bis zum kleinsten Detail DiePlasma-Oberflaumlche fuumlr Mobilgeraumlte ist vollstaumln-dig separat von der Desktop-Variante und kanndiese daher auch nicht beeintraumlchtigen Die An-wendungen bieten einen groszligen Funktionsum-fang und sind konfigurier- und erweiterbar Natuumlr-lich gibt es bisweilen andere freie Anwendungen

die den KDE-Anwendungen uumlber-legen sind oder von einigen Be-nutzern bevorzugt werden aberviele KDE-Anwendungen sind gutund nuumltzlich

Die Kritikpunkte an KDE sind die-selben wie eh und je KDEPIMwird des oumlfteren kritisiert beson-ders KMail Da ich selbst noch nieKMail-Benutzer war kann ich da-zu nichts weiter sagen aber essieht so aus als ob die KDEPIM-Entwickler einiges an der Ro-bustheit der Software verbessernmuumlssten um ihren Ruf wiederherzustellen Aktivitaumlten sind trotzaller Verbesserungen in den letz-ten Versionen etwas was von

vielen nur als unnuumltze Komplexitaumlt angesehenwird weil sie keinen Nutzen erkennen Ich dach-te dass man mit Aktivitaumlten eine Gruppe vonAnwendungen gemeinsam starten und stoppenkoumlnnte das koumlnnte wirklich nuumltzlich sein Tat-saumlchlich sind Aktivitaumlten die man einmal definierthat immer vorhanden Man kann sie zwar stop-pen aber ihre Anwendungen laufen weiter Spei-cherplatz laumlsst sich so offenbar nicht sparen Wel-chen Nutzen aber haben sie dann den man mitvirtuellen Desktops nicht erzielen koumlnnte Leidersind derzeit Menuumlpunkte und Optionen zu Aktivi-taumlten uumlberall in Plasma vorhanden angefangenmit dem Button oben rechts auf dem Desktopder sich nicht entfernen laumlsst Es sollte eine Moumlg-lichkeit geben alle Optionen auszublenden

Ein weiteres Problem werden wohl viele Benut-zer schon erlebt haben die sich an einem frischinstallierten KDE einloggen wollten Man kommtnicht weit der Desktop stuumlrzt einfach ab DerGrund ist der dass standardmaumlszligig zahlreiche Ef-fekte eingeschaltet sind und je nach Hardwareund Grafiktreiber kann da Vieles schiefgehenDie Loumlsung besteht darin sich im bdquoabgesichertenModusldquo einzuloggen und die Effekte abzuschal-ten Korrekt waumlre alle Effekte standardmaumlszligig ab-zuschalten so wie es beispielsweise Suse LinuxEnterprise macht Wenn ein Benutzer Effekte ak-tiviert dann auf eigenes Risiko und wenn daseinen Absturz zur Folge hat sollte ihm dann klarsein woran es lag

Multimedia im Browser und DesktopWegen der Softwarepatente in den USA kannFedora ebenso wie die meisten anderen Dis-tributionen nur wenige Medienformate abspie-len da es viele benoumltigte Codecs nicht mitliefernkann Wenn man versucht eine MP3- oder Vi-deodatei abzuspielen dann bieten die gaumlngigenPlayer aber die Option an uumlber die Paketverwal-tung nach passenden Plug-ins zu suchen

Damit die Suche in der Paketverwaltung Aus-sicht auf Erfolg hat muss man vorher die zusaumltz-lichen Repositories von RPM Fusion eintragenDas muss man wissen oder durch Suchen her-ausfinden Die Repositories kann man eintragenindem man die Webseite von RPM Fusion [15]besucht Von dieser kann man Pakete installie-ren die die Repositories hinzufuumlgen Dies gilt fuumlrGNOME wie fuumlr KDE

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 9

DISTRIBUTION

Nach dieser Vorbereitung sollten die Player un-ter GNOME und KDE in der Lage sein die be-noumltigten Plug-ins selbsttaumltig zu installieren Merk-wuumlrdigerweise hat Totem aber ein Problem wennman ausgerechnet mit der Suche nach einemMP3-Plug-in anfaumlngt und noch keine Codecs in-stalliert sind ndash diese Suche schlaumlgt fehl Bei Vi-deoformaten funktioniert es aber Am schnellstenund einfachsten ist allerdings eine manuelle In-stallation der GStreamer-Plugins insbesonderegstreamer-ugly und gstreamer-ffmpeg Dennwenn man die Plug-ins von Totem installierenlaumlsst treten wie schon in der Vorversion eineReihe von Merkwuumlrdigkeiten auf

1 Nach der Installation muss Totem neu gestar-tet werden sonst sieht er die neuen Plug-insnicht

2 Das Spiel mit Suchen und Installieren mussggf mehrmals wiederholt werden denn dasProgramm scheint unfaumlhig zu sein alle benouml-tigten Codecs auf einmal zu ermitteln

3 Zur Installation ist die Eingabe des eige-nen Passworts noumltig Trotz korrekter Einga-be schreibt die Dialogbox jedoch bdquoEntschuldi-gung das hat nicht geklapptldquo nur um dannfortzufahren und die Pakete korrekt zu instal-lieren

Totem erscheint bei Installation von DVDs auchunter KDE als Standard-Medienplayer auch fuumlrMP3-Dateien Das haumlngt wohl damit zusam-men dass bei der KDE-Installation eine Men-ge GNOME-Pakete mitinstalliert werden Dragon-player ist als Alternative installiert

Die Flash-Situation in den Browsern bleibt mittel-maumlszligig Ohne den Adobe Flash Player geht nichtallzuviel Nichts hat sich bei Gnash getan dasbei Version 0810 blieb Es kann viele Flash-Videos im Web nicht abspielen Die freie Alterna-tive Lightspark ist jetzt in Version 071 in den Re-positories von RPM Fusion enthalten und kannvermutlich einige Videos mehr abspielen Kon-queror der Standard-Browser unter KDE stuumlrz-te beim Versuch ein Youtube-Video abzuspielenab Offensichtlich verwendet man besser einenanderen Browser unter KDE

Bei der Installation des Adobe Flash Playerskann man aumlhnlich vorgehen wie bei RPM Fu-sion Zunaumlchst laumldt man von Adobe eine RPM-Datei herunter die das Repository anlegt Dannkann man uumlber die Paketverwaltung das eigentli-che Plug-in installieren Die Alternative zu Flashdas WebM-Format sollte in Firefox seit Version 4kaum Probleme bereiten

Paketverwaltung und UpdatesWenig hat sich bei der Paketverwaltung getan In-stallation bzw Deinstallation und das Aktualisie-ren von Paketen sind weiterhin separate Anwen-dungen die aber auch von der Paketverwaltungaus aufgerufen werden koumlnnen Sie funktionie-ren normalerweise reibungslos und die Updateswenn sie auch zahlreich sind sind dank Delta-RPMs oft erstaunlich klein und schnell installiert

Die Paketverwaltung baut unter GNOME undKDE grundsaumltzlich auf PackageKit auf Die Pro-gramme ndash gpk-application 361 bzw apper 080

Installation von Updates in KDE von derBenachrichtigung aus

ndash sind komfortabel genug Etwas Vergleichba-res wie das Software Center von Ubuntu bietetFedora jedoch nicht

Etwas merkwuumlrdig ist dass man beim erstenUpdate gefragt wird ob man der Paketquel-le vertraut Eigentlich sollten die Schluumlssel derStandard-Repositories bereits vorinstalliert seinund Fedora sollte seinen eigenen Quellen auto-matisch vertrauen

FazitFedora 18 wurde von einigen Benutzern darun-ter sogar Alan Cox als die bisher schlechtesteVersion bezeichnet und das mag sogar zutreffenAllerdings muss man das relativieren Die Kritik

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 10

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 9: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DISTRIBUTION

Desktop von KDE 49 mit Anwendungen

in sinnvolle Zusammenhaumlnge zu stellen PrivateAktivitaumlten koumlnnen verschluumlsselt werden DerWindow-Manager KWin erhielt Aumlnderungen sodass man Fensterregeln fuumlr Aktivitaumlten definierenkann

KDE ist im Prinzip der exakte Gegenpol zuGNOME Hier sind die traditionellen Bedienele-mente unbeschaumldigt erhalten und es gibt Einstel-lungsmoumlglichkeiten bis zum kleinsten Detail DiePlasma-Oberflaumlche fuumlr Mobilgeraumlte ist vollstaumln-dig separat von der Desktop-Variante und kanndiese daher auch nicht beeintraumlchtigen Die An-wendungen bieten einen groszligen Funktionsum-fang und sind konfigurier- und erweiterbar Natuumlr-lich gibt es bisweilen andere freie Anwendungen

die den KDE-Anwendungen uumlber-legen sind oder von einigen Be-nutzern bevorzugt werden aberviele KDE-Anwendungen sind gutund nuumltzlich

Die Kritikpunkte an KDE sind die-selben wie eh und je KDEPIMwird des oumlfteren kritisiert beson-ders KMail Da ich selbst noch nieKMail-Benutzer war kann ich da-zu nichts weiter sagen aber essieht so aus als ob die KDEPIM-Entwickler einiges an der Ro-bustheit der Software verbessernmuumlssten um ihren Ruf wiederherzustellen Aktivitaumlten sind trotzaller Verbesserungen in den letz-ten Versionen etwas was von

vielen nur als unnuumltze Komplexitaumlt angesehenwird weil sie keinen Nutzen erkennen Ich dach-te dass man mit Aktivitaumlten eine Gruppe vonAnwendungen gemeinsam starten und stoppenkoumlnnte das koumlnnte wirklich nuumltzlich sein Tat-saumlchlich sind Aktivitaumlten die man einmal definierthat immer vorhanden Man kann sie zwar stop-pen aber ihre Anwendungen laufen weiter Spei-cherplatz laumlsst sich so offenbar nicht sparen Wel-chen Nutzen aber haben sie dann den man mitvirtuellen Desktops nicht erzielen koumlnnte Leidersind derzeit Menuumlpunkte und Optionen zu Aktivi-taumlten uumlberall in Plasma vorhanden angefangenmit dem Button oben rechts auf dem Desktopder sich nicht entfernen laumlsst Es sollte eine Moumlg-lichkeit geben alle Optionen auszublenden

Ein weiteres Problem werden wohl viele Benut-zer schon erlebt haben die sich an einem frischinstallierten KDE einloggen wollten Man kommtnicht weit der Desktop stuumlrzt einfach ab DerGrund ist der dass standardmaumlszligig zahlreiche Ef-fekte eingeschaltet sind und je nach Hardwareund Grafiktreiber kann da Vieles schiefgehenDie Loumlsung besteht darin sich im bdquoabgesichertenModusldquo einzuloggen und die Effekte abzuschal-ten Korrekt waumlre alle Effekte standardmaumlszligig ab-zuschalten so wie es beispielsweise Suse LinuxEnterprise macht Wenn ein Benutzer Effekte ak-tiviert dann auf eigenes Risiko und wenn daseinen Absturz zur Folge hat sollte ihm dann klarsein woran es lag

Multimedia im Browser und DesktopWegen der Softwarepatente in den USA kannFedora ebenso wie die meisten anderen Dis-tributionen nur wenige Medienformate abspie-len da es viele benoumltigte Codecs nicht mitliefernkann Wenn man versucht eine MP3- oder Vi-deodatei abzuspielen dann bieten die gaumlngigenPlayer aber die Option an uumlber die Paketverwal-tung nach passenden Plug-ins zu suchen

Damit die Suche in der Paketverwaltung Aus-sicht auf Erfolg hat muss man vorher die zusaumltz-lichen Repositories von RPM Fusion eintragenDas muss man wissen oder durch Suchen her-ausfinden Die Repositories kann man eintragenindem man die Webseite von RPM Fusion [15]besucht Von dieser kann man Pakete installie-ren die die Repositories hinzufuumlgen Dies gilt fuumlrGNOME wie fuumlr KDE

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 9

DISTRIBUTION

Nach dieser Vorbereitung sollten die Player un-ter GNOME und KDE in der Lage sein die be-noumltigten Plug-ins selbsttaumltig zu installieren Merk-wuumlrdigerweise hat Totem aber ein Problem wennman ausgerechnet mit der Suche nach einemMP3-Plug-in anfaumlngt und noch keine Codecs in-stalliert sind ndash diese Suche schlaumlgt fehl Bei Vi-deoformaten funktioniert es aber Am schnellstenund einfachsten ist allerdings eine manuelle In-stallation der GStreamer-Plugins insbesonderegstreamer-ugly und gstreamer-ffmpeg Dennwenn man die Plug-ins von Totem installierenlaumlsst treten wie schon in der Vorversion eineReihe von Merkwuumlrdigkeiten auf

1 Nach der Installation muss Totem neu gestar-tet werden sonst sieht er die neuen Plug-insnicht

2 Das Spiel mit Suchen und Installieren mussggf mehrmals wiederholt werden denn dasProgramm scheint unfaumlhig zu sein alle benouml-tigten Codecs auf einmal zu ermitteln

3 Zur Installation ist die Eingabe des eige-nen Passworts noumltig Trotz korrekter Einga-be schreibt die Dialogbox jedoch bdquoEntschuldi-gung das hat nicht geklapptldquo nur um dannfortzufahren und die Pakete korrekt zu instal-lieren

Totem erscheint bei Installation von DVDs auchunter KDE als Standard-Medienplayer auch fuumlrMP3-Dateien Das haumlngt wohl damit zusam-men dass bei der KDE-Installation eine Men-ge GNOME-Pakete mitinstalliert werden Dragon-player ist als Alternative installiert

Die Flash-Situation in den Browsern bleibt mittel-maumlszligig Ohne den Adobe Flash Player geht nichtallzuviel Nichts hat sich bei Gnash getan dasbei Version 0810 blieb Es kann viele Flash-Videos im Web nicht abspielen Die freie Alterna-tive Lightspark ist jetzt in Version 071 in den Re-positories von RPM Fusion enthalten und kannvermutlich einige Videos mehr abspielen Kon-queror der Standard-Browser unter KDE stuumlrz-te beim Versuch ein Youtube-Video abzuspielenab Offensichtlich verwendet man besser einenanderen Browser unter KDE

Bei der Installation des Adobe Flash Playerskann man aumlhnlich vorgehen wie bei RPM Fu-sion Zunaumlchst laumldt man von Adobe eine RPM-Datei herunter die das Repository anlegt Dannkann man uumlber die Paketverwaltung das eigentli-che Plug-in installieren Die Alternative zu Flashdas WebM-Format sollte in Firefox seit Version 4kaum Probleme bereiten

Paketverwaltung und UpdatesWenig hat sich bei der Paketverwaltung getan In-stallation bzw Deinstallation und das Aktualisie-ren von Paketen sind weiterhin separate Anwen-dungen die aber auch von der Paketverwaltungaus aufgerufen werden koumlnnen Sie funktionie-ren normalerweise reibungslos und die Updateswenn sie auch zahlreich sind sind dank Delta-RPMs oft erstaunlich klein und schnell installiert

Die Paketverwaltung baut unter GNOME undKDE grundsaumltzlich auf PackageKit auf Die Pro-gramme ndash gpk-application 361 bzw apper 080

Installation von Updates in KDE von derBenachrichtigung aus

ndash sind komfortabel genug Etwas Vergleichba-res wie das Software Center von Ubuntu bietetFedora jedoch nicht

Etwas merkwuumlrdig ist dass man beim erstenUpdate gefragt wird ob man der Paketquel-le vertraut Eigentlich sollten die Schluumlssel derStandard-Repositories bereits vorinstalliert seinund Fedora sollte seinen eigenen Quellen auto-matisch vertrauen

FazitFedora 18 wurde von einigen Benutzern darun-ter sogar Alan Cox als die bisher schlechtesteVersion bezeichnet und das mag sogar zutreffenAllerdings muss man das relativieren Die Kritik

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 10

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 10: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DISTRIBUTION

Nach dieser Vorbereitung sollten die Player un-ter GNOME und KDE in der Lage sein die be-noumltigten Plug-ins selbsttaumltig zu installieren Merk-wuumlrdigerweise hat Totem aber ein Problem wennman ausgerechnet mit der Suche nach einemMP3-Plug-in anfaumlngt und noch keine Codecs in-stalliert sind ndash diese Suche schlaumlgt fehl Bei Vi-deoformaten funktioniert es aber Am schnellstenund einfachsten ist allerdings eine manuelle In-stallation der GStreamer-Plugins insbesonderegstreamer-ugly und gstreamer-ffmpeg Dennwenn man die Plug-ins von Totem installierenlaumlsst treten wie schon in der Vorversion eineReihe von Merkwuumlrdigkeiten auf

1 Nach der Installation muss Totem neu gestar-tet werden sonst sieht er die neuen Plug-insnicht

2 Das Spiel mit Suchen und Installieren mussggf mehrmals wiederholt werden denn dasProgramm scheint unfaumlhig zu sein alle benouml-tigten Codecs auf einmal zu ermitteln

3 Zur Installation ist die Eingabe des eige-nen Passworts noumltig Trotz korrekter Einga-be schreibt die Dialogbox jedoch bdquoEntschuldi-gung das hat nicht geklapptldquo nur um dannfortzufahren und die Pakete korrekt zu instal-lieren

Totem erscheint bei Installation von DVDs auchunter KDE als Standard-Medienplayer auch fuumlrMP3-Dateien Das haumlngt wohl damit zusam-men dass bei der KDE-Installation eine Men-ge GNOME-Pakete mitinstalliert werden Dragon-player ist als Alternative installiert

Die Flash-Situation in den Browsern bleibt mittel-maumlszligig Ohne den Adobe Flash Player geht nichtallzuviel Nichts hat sich bei Gnash getan dasbei Version 0810 blieb Es kann viele Flash-Videos im Web nicht abspielen Die freie Alterna-tive Lightspark ist jetzt in Version 071 in den Re-positories von RPM Fusion enthalten und kannvermutlich einige Videos mehr abspielen Kon-queror der Standard-Browser unter KDE stuumlrz-te beim Versuch ein Youtube-Video abzuspielenab Offensichtlich verwendet man besser einenanderen Browser unter KDE

Bei der Installation des Adobe Flash Playerskann man aumlhnlich vorgehen wie bei RPM Fu-sion Zunaumlchst laumldt man von Adobe eine RPM-Datei herunter die das Repository anlegt Dannkann man uumlber die Paketverwaltung das eigentli-che Plug-in installieren Die Alternative zu Flashdas WebM-Format sollte in Firefox seit Version 4kaum Probleme bereiten

Paketverwaltung und UpdatesWenig hat sich bei der Paketverwaltung getan In-stallation bzw Deinstallation und das Aktualisie-ren von Paketen sind weiterhin separate Anwen-dungen die aber auch von der Paketverwaltungaus aufgerufen werden koumlnnen Sie funktionie-ren normalerweise reibungslos und die Updateswenn sie auch zahlreich sind sind dank Delta-RPMs oft erstaunlich klein und schnell installiert

Die Paketverwaltung baut unter GNOME undKDE grundsaumltzlich auf PackageKit auf Die Pro-gramme ndash gpk-application 361 bzw apper 080

Installation von Updates in KDE von derBenachrichtigung aus

ndash sind komfortabel genug Etwas Vergleichba-res wie das Software Center von Ubuntu bietetFedora jedoch nicht

Etwas merkwuumlrdig ist dass man beim erstenUpdate gefragt wird ob man der Paketquel-le vertraut Eigentlich sollten die Schluumlssel derStandard-Repositories bereits vorinstalliert seinund Fedora sollte seinen eigenen Quellen auto-matisch vertrauen

FazitFedora 18 wurde von einigen Benutzern darun-ter sogar Alan Cox als die bisher schlechtesteVersion bezeichnet und das mag sogar zutreffenAllerdings muss man das relativieren Die Kritik

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 10

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 11: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DISTRIBUTION

die beispielsweise hier [5] sehr uumlberzogen wirktbezieht sich hauptsaumlchlich auf das neue Anacon-da und GNOME Andere Fehler werden meis-tens schnell behoben und werden wesentlich sel-tener je laumlnger man mit dem Update wartet ZuAnaconda ist festzuhalten dass es im Test keineProbleme gab Er mag stellenweise unvollstaumln-dig und noch nicht optimal bedienbar sein kanndann aber so schlecht doch nicht sein Zudemwerden viele Benutzer einfach ein Update mit fe-dup durchfuumlhren und mit Anaconda gar nichts zutun haben Mehr als 400 Updates in den erstenfuumlnf Tagen allein in der Standardinstallation duumlrf-ten einen neuen Rekord darstellen Es bedeutetaber auch dass jetzt schon deutlich weniger Pro-bleme auftreten duumlrften

Das andere Problem ist GNOME aber dagegenhilft eine andere Desktopumgebung zu instal-lieren GNOME mit der GNOME-Shell ist ebennach wie vor Geschmackssache Manche ar-gumentieren es sei nur gewoumlhnungsbeduumlrftigDann sei aber die Frage erlaubt warum man sichan eine Software gewoumlhnen sollte Muss es nichteher umgekehrt so sein dass sich die Softwareperfekt an die eigenen Vorstellungen anpassenlassen muss Grundsaumltzlich stellt sich auch dieFrage warum die GNOME-Entwickler mit allerGewalt etwas aumlndern mussten (ich meine hierdas Desktop-Paradigma) das uumlberhaupt keinenMangel aufwies

Fedora bringt reichliche und haumlufige UpdatesFedora 18 vielleicht noch mehr als uumlblich und

ist damit immer aktuell Doch genau hier liegtauch die groumlszligte Schwaumlche der Distribution DieBasis aumlndert sich staumlndig und es gibt keine Ver-sion mit langfristigem Support Alle sechs Mona-te ist das Update auf die neueste Version PflichtWaumlhrend das fuumlr fortgeschrittene Anwender ei-ne einfache Taumltigkeit darstellt die sie leicht be-herrschen ist es normalen Anwendern einfachnicht zumutbar Andere Distributionen insbeson-dere Ubuntu oder Debian bieten nicht nur we-sentlich laumlngeren Support sondern ermoumlglichenauch das Update ohne Unterbrechung des Be-triebs Man koumlnnte nun argumentieren dass nor-male Benutzer statt Fedora Red Hat EnterpriseLinux oder eine davon abgeleitete Distributionnutzen sollten die ja weitgehend zu Fedora kom-patibel sind Dagegen spricht nichts ganz im Ge-genteil aber diese Distributionen sind eben nichtexakt Fedora

Fuumlr mich bleibt es dabei dass Fedora in ersterLinie fuumlr erfahrene Benutzer geeignet ist die im-mer die neueste Software wollen und auch keinProblem mit den Updates haben

LINKS

[1] httpwwwpro-linuxdeartikel21611fedora-18html

[2] httpsfedoraprojectorgwikiF18_release_announcement

[3] httpwwwfreiesmagazindefreiesMagazin-2012-08

[4] httpsfedoraprojectorgwikiFeaturesNewInstallerUI

[5] httpwwwdedoimedocomcomputersfedora-18-kdehtml

[6] httpsbugzillaredhatcomshow_bugcgiid=902498

[7] httpsfedoraprojectorgwikiFeaturesRealHotspot

[8] httpsfedoraprojectorgwikiFeaturesRiak[9] httpsfedoraprojectorgwikiFeatures

Samba4[10] httpsfedoraprojectorgwikiFeatures

OfflineSystemUpdates[11] httpfedoraprojectorgwikiFeaturesSystemStor

ageManager[12] httpfedoraprojectorgwikiFeaturestmp-on-

tmpfs[13] httpwikilinux-nfsorgwikiindexphpFedFsUtils

Project[14] httpfedoraprojectorgwikiFeaturesfirewalld-

default[15] httprpmfusionorg

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux1994 schloss er erfolgreich seinInformatikstudium ab machte dieSoftwareentwicklung zum Berufund ist einer der Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 11

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 12: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

KERNEL

Der Februar im Kernelruumlckblick von Mathias Menzer

B asis aller Distributionen ist der Linux-Kernel der fortwaumlhrend weiterent-wickelt wird Welche Geraumlte in einem

halben Jahr unterstuumltzt werden und welcheFunktionen neu hinzukommen erfaumlhrt manwenn man den aktuellen Entwickler-Kernel imAuge behaumllt

Linux 38 EntwicklungDie bedeutendste Aumlnderung der sechsten Ent-wicklerversion [1] duumlrfte wohl das Abschalten desTreibers bdquosamsung-laptopldquo in dem Fall sein dassder Linux-Kernel mittels EFI [2] gestartet wurdeDer Hintergrund hierfuumlr liegt im Bekanntwerdeneines Fehlers durch den einige Laptop-Modelledes Herstellers Samsung nach dem Start einesLinux-Systems unbrauchbar wurden Zwischen-zeitlich wiesen jedoch einige Kernel-Entwicklerdarauf hin dass das Problem nicht jener Trei-ber sondern die UEFI-Firmware selbst sein undder Fehler daher von Samsung behoben werdenmuumlsse [3] Dass es auch unter Windows moumlglichist ein solches Geraumlt unbrauchbar zu machenduumlrfte ihre These untermauern [4] Die letzte Ent-wicklerversion im Reigen hieszlig -rc7 [5] Sie hat-te lediglich Korrekturen im Gepaumlck und war da-her gut geeignet den Entwicklungszyklus abzu-schlieszligen

Linux 38 ReleaseNach 70 Tagen Entwicklungszeit ndash und das uumlberWeihnachten und den Jahreswechsel hinweg ndashsteht Linux 38 nun zum Einsatz bereit [6] Der

neue Kernel hat nicht so viele Aumlnderungen aufzu-weisen wie der Vorgaumlnger er bewegt sich eherin einem normalen Rahmen

Mit als erstes bekannt wurde der Wegfall der Un-terstuumltzung fuumlr die 386-Prozessoren [7] Eigent-lich war dieser Prozessortyp die Wiege fuumlr Linuxda Torvalds seinen Kernel urspruumlnglich hierfuumlrentwickelte Doch von Sentimentalitaumlt war nichtviel zu spuumlren und so nahm der den entsprechen-den Patch auf

Es steht wieder ein neues Dateisystem zurVerfuumlgung F2FS ist speziell auf die Anforde-rungen von Flash-Speichern zugeschnitten wiesie zum Beispiel in Solid State Drives [8](SSD) zum Einsatz kommen Generell existie-ren bereits mehrere fuumlr Flash-Speicher geeigne-te Dateisysteme wie Logfs oder UBIFS dochdie beruumlcksichtigen nicht den Flash Translati-on Layer [9] den SSDs als Zwischenschichtzum System nutzen Dieser optimiert Zugriffe aufdie Flash-Speicherelemente auch fuumlr herkoumlmm-liche Dateisysteme sodass der jeweilige SSD-Datentraumlger wie ein ganz normales blockorien-tiertes Geraumlt gehandhabt werden kann F2FSkann mit dieser Zwischenschicht umgehen undihre Optimierungs- und Schutzfunktionen fuumlr dieFlash-Speicherbausteine mitnutzen

Auch die altgedienten Dateisysteme wurden mitVerbesserungen bedacht Ext4 [10] kann nunsehr kleine Dateien direkt in Inodes ablegen Dortbefinden sich normalerweise nur die Metadaten

zu Dateien und Verweise auf die Speicherbloumlckein denen die Dateien tatsaumlchlich physikalisch ge-speichert sind Die Inodes sind normalerweisesehr klein ndash 256 Byte in der Standardeinstellungndash doch dieser Platz wird meist nicht vollstaumlndiggebraucht Passt in einen solchen Inode die zu-gehoumlrige Datei noch mit hinein so wird nicht nuretwas Speicherplatz gespart da ein ansonsten 4Kilobyte groszliger Block verschwendet werden wuumlr-de sondern die Zugriffe auf die Datei erfolgenauch schneller da die Suche nach dem zugehouml-rigen Speicherblock entfaumlllt

Btrfs [11] ist ein aumluszligerst flexibles und vergleichs-weise junges Dateisystem und bringt mit fast je-der Kernel-Version neue Funktionen hervor Dies-mal haben die Entwickler den Austausch physi-kalischer Datentraumlger ins Visier genommen Bis-lang war es zwar moumlglich einen neuen Datentrauml-ger in ein btrfs-Dateisystem einzubinden und dar-aufhin einen anderen wieder zu entfernen dochnahmen die darauf folgenden Operationen vielZeit in Anspruch Mit der neuen Funktion bdquore-placeldquo wird letzten Endes das Gleiche erreichtdoch arbeitet btrfs hier wesentlich performantersolange keine weiteren Datentraumlger-Operationenanfallen Der Austausch des Datentraumlgers er-folgt im laufenden Betrieb es ist nicht notwen-dig irgendwelche Operationen zu stoppen odergar das Dateisystem auszuhaumlngen Eine Abfra-ge zum Status des Austauschs und auch der Ab-bruch ist uumlber das Kommandozeilen-Tool fuumlr btrfsmoumlglich

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 12

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 13: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

KERNEL

Die Speicherverwaltung des Kernels wurde umeine Funktion zum Ordnung halten erweitert bdquoHu-ge Pagesldquo (deutsch bdquoGroszlige Seitenldquo) sind spezi-elle Speicherseiten die groumlszliger als die uumlblichen4KB-Speicherseiten sind sie werden als speziel-le Funktion von der Speicherverwaltung der CPUbereitgestellt Diese Huge Pages wurden nun er-weitert um bdquoZero Pagesldquo (deutsch bdquoNull-Seitenldquo)abbilden zu koumlnnen quasi Speicherseiten dievollstaumlndig mit Nullen gefuumlllt sind Zero Pageswerden von Anwendungen genutzt um Speicher-platz zu reservieren So kann die Speicherver-waltung letztlich Speicherplatz einsparen indemeinige dieser Seiten nicht zugewiesen werdensondern stattdessen auf eine bereits existieren-de Zero Page verwiesen wird

Die bdquoCgroupsldquo (Control Groups) sind eine Funk-tion des Kernels mittels der die Verteilungvon Ressourcen des Systems wie zum Bei-spiel Prozessor-Zeit oder Speicher auf Prozess-Gruppen gesteuert werden kann Die Cgroupswurden nun erweitert sodass der Speicher derzur Verwaltung von Prozessen durch den Ker-nel benoumltigt wird limitiert und abgegrenzt werdenkann Das kann zum einen die Sicherheit desSystems erhoumlhen zu anderen die Stabilitaumlt damit oder ohne Absicht schadhaft geschriebeneProgramme in ihrem Ressourcenverbrauch wirk-sam eingeschraumlnkt werden koumlnnen Auch die be-ruumlchtigten Fork-Bomben [12] sollen hierdurch ih-ren Schrecken verlieren

NUMA (Non Uniform Memory Access) [13]ist eine Architektur der Speicheranbindung fuumlr

Multiprozessor-Systeme die fuumlr jeden Prozessorseinen eigenen lokalen Speicher vorsieht Dieserkann dann jedoch auch von anderen Prozesso-ren angesprochen werden wobei natuumlrlich derZugriff auf den eigenen Speicher schneller erfol-gen kann als auf den anderer CPUs Insofernist es guumlnstig wenn Prozesse auf dem Prozes-sor ausgefuumlhrt werden in dessen Speicher auchdie benoumltigten Daten liegen Um dies zu optimie-ren wurde in Linux 38 mit nun die Grundlagegelegt Detaillierte Regeln nach denen NUMAdann Prozess- und Speicher-Zuweisung steuertwerden im kommenden Kernel folgen

Eine vollstaumlndige Uumlbersicht uumlber alle Neuerun-gen und Verbesserungen von Linux 38 findetsich auch diesmal wieder auf der Seite Linux Ker-nel Newbies [14]

Spekulationen dass Linux 38 wieder einLongterm-Kernel werden wuumlrde hat Greg Kroah-Hartman im Uumlbrigen bereits vorzeitig been-det [15] Er pflege derzeit Linux 30 und 34 fuumlrnoch mindestens 2 Jahre zusaumltzlich zu den nor-malen Kernel-Versionen und seiner Taumltigkeit beider Kernelentwicklung Einen dritten Longterm-Kernel koumlnne er nicht betreuen ohne noch mehrHaare zu verlieren

Ein D-Bus im KernelSeit sieben Jahren schon steht mit D-Bus [16]unter Linux ein System fuumlr die Interprozesskom-munikation [17] (IPC) zur Verfuumlgung das mittler-weile von den gaumlngigsten Desktop-Umgebungenund Anwendungen verwendet wird Doch D-Bus

basiert auf einem Daemon Greg Kroah-Hartmanhegt nun Plaumlne ein IPC-System in den Linux-Kernel direkt zu implementieren [18] Er ver-spricht sich davon dass die Kommunikation zwi-schen Prozessen und Systemkomponenten be-schleunigt wird auszligerdem wuumlrde es allen Linux-Anwendungen zur Verfuumlgung stehen sobald nurder Kernel gestartet ist Damit haumltte es auch diebesten Aussichten zu einem neuen Standardzu werden Zu D-Bus kompatible Schnittstellensollen es ermoumlglichen das IPC-Framework zuwechseln ohne dass Desktop-Umgebung oderAnwendung etwas davon mitbekommen Zwarexistiert mit AF-Bus bereits ein IPC-System fuumlrden Linux-Kernel doch der eigne sich nach An-sicht von Kroah-Hartman eher fuumlr die bdquoverruumlck-ten Linux-Entwickler aus der AutomobilbrancheldquoSo findet sich AF-Bus auch im LTSI-Kernel je-doch wurde seine Aufnahme in den Mainstream-Kernel von der Entwicklergemeinde bisher abge-lehnt

Keine Secure-Boot-Schluumlssel im Ker-nelMit der Anfrage um die Aufnahme einiger Pat-ches wandte sich der Red-Hat-Entwickler Da-vid Howells an Torvalds Konkret ging es darumdass der Kernel in die Lage versetzt werden soll-te neue Schluumlssel fuumlr die Verwendung im Zusam-menhang mit Secure Boot automatisch zu im-portieren [19] Torvalds lehnte die Aufnahme derPatches erst einmal ab da ihm die neue Funk-tion und worauf sie aufbaut nicht gefiel Unteranderem stoumlrte er sich daran dass die Schluumls-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 13

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 14: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

KERNEL

sel aus PE-Dateien [20] extrahiert werden sol-len weil Microsoft nur diese signiere der Linux-Kernel aber X509 [21] unterstuumltze welches einStandard fuumlr Zertifikate ist Das Parsen der PE-Binaumlrdateien solle im Userland geschehen Auchim weiteren Verlauf der Diskussion zeigte sichTorvalds nicht kompromissbereit Er glaube nichtdass sich jemand um von vertrauenswuumlrdigenStellen signierte Schluumlssel schere Da sich auchweitere Entwickler skeptisch zeigten scheint eseher unwahrscheinlich dass eine Schluumlsselver-waltung in den Kernel integriert wird die mitden von der Microsoft-Zertifizierungsstelle fuumlr dieSignierung vorausgesetzten PE-Binaumlrdateien zu-rechtkommt Fuumlr Linux bedeutet das im Zusam-menhang mit Secure Boot dass zum Beispieldas Aufwachen des Systems nach dem Ruhe-zustand was kein eigentlicher Bootvorgang istnicht funktioniert oder Fehlermeldungen erzeugt

Gregs 2012Sicherlich kann Greg Kroah-Hartman auf vielesim Jahr 2012 zuruumlckblicken Doch die Linux Foun-dation interessierte sich insbesondere fuumlr seineTaumltigkeit als Kernel-Maintainer und hat hier eini-ge Zahlen zusammengefasst [22]

So bekam Kroah-Hartman uumlber 32000 E-Mailspro Monat die Kernel-Mailing-Liste nicht hinzu-gerechnet und mehr als 40000 E-Mail hat er in2012 verschickt Fast 179000 Zeilen Code hater selbst geaumlndert dazu kommen uumlber 31000entfernte Zeilen 595 Commits wurden von ihmakzeptiert und uumlber 7000 hat er abgesegnet

Ein Jahr im Leben eines Kernel-Maintainerscopy The Linux Foundation (CC-BY)

LINKS

[1] httpslkmlorglkml2013131593[2] httpsdewikipediaorgwikiUnified_Extensible_

Firmware_Interface[3] httpwwwpro-linuxdenews119432garret-

uefi-problem-mit-samsung-laptops-noch-nicht-behobenhtml

[4] httpheisede-1801269[5] httpslkmlorglkml201328470[6] httpslkmlorglkml2013218476[7] httpsdewikipediaorgwikiIntel_80386[8] httpsdewikipediaorgwikiSolid-State-Drive[9] httpsenwikipediaorgwikiFlash_Translation_

LayerTranslation_layers[10] httpdewikipediaorgwikiBtrfs[11] httpsdewikipediaorgwikiForkbomb

[12] httpsdewikipediaorgwikiNon-Uniform_Memory_Access

[13] httpkernelnewbiesorgLinux_38[14] httpwwwkroahcomloglinux38-is_not_

longterm_stablehtml[15] httpsdewikipediaorgwikiD-Bus[16] httpsdewikipediaorgwikiInterprozesskommu

nikation[17] httpwwwpro-linuxdenews119435aufnahme-

von-d-bus-in-den-kernel-geplanthtml[18] httpwwwpro-linuxdenews119498uefi-

secure-boot-schluessel-signierung-vorerst-nicht-im-linux-kernelhtml

[19] httpsdewikipediaorgwikiPortable_Executable[20] httpsdewikipediaorgwikiX509[21] httpsdewikipediaorgwikiLinux_Foundation[22] httpwwwlinuxfoundationorgnews-media

infographicsyear-life-kernel-maintainer-2012-greg-kroah-hartman

Autoreninformation

Mathias Menzer (Webseite) wirftgerne einen Blick auf die Kernel-Entwicklung um mehr uumlber dieFunktion von Linux zu erfahren undum seine Mitmenschen mit seltsamenBegriffen und unverstaumlndlichen Abkuumlr-zungen verwirren zu koumlnnen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 14

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 15: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II von Markus Brenneis

Im ersten Teil der Reihe [1] wurde erlaumlu-tert wie das Add-on-SDK eingerichtet undein Symbol zur Add-on-Leiste hinzugefuumlgt

wird Es soll nun mit der Erweiterung moumlglichsein den gerade markierten Begriff in Wikipe-dia nachzuschlagen Auszligerdem wird erklaumlrtwie ein Eintrag im Kontextmenuuml angelegt wirdund wie man seine Erweiterung mit anderenFirefox-Nutzern teilen kann

Ermitteln des ausgewaumlhlten TextesDie an die Erweiterung gestellte Aufgabe umfasstzwei Teilaufgaben Als erstes muss festgestelltwerden welcher Text gerade markiert ist und an-schlieszligend muss der Wikipedia-Artikel in einemneuem Tab geoumlffnet werden

Um den Inhalt der aktuellen Auswahl zu bekom-men stellt das SDK das Modul selection [2]zur Verfuumlgung Um das Modul nutzen zu koumln-nen muss es zunaumlchst ndash wie schon vom widget-Modul bekannt ndash per

var selection = require(sdkyselection)

in die mainjs eingebunden werden Mit der En-de Januar erschienenen SDK-Version 113 hatsich die Syntax von require uumlbrigens ein we-nig veraumlndert [3] Wegen Aumlnderungen an derSDK-Struktur muss nun sdk vor den Modul-namen geschrieben werden die alte Syntax(require(selection)) ist aber aus Kompati-bilitaumltsgruumlnden zur Zeit auch noch guumlltig

Die aktuelle Auswahl soll dann ausgelesen wer-den wenn das bdquoWldquo-Widget angeklickt wird Da-fuumlr wird eine Funktion verwendet die aufgeru-fen wird wenn das click-Event [4] des Widgetsausgeloumlst wird Ein erster Ansatz der die aktuel-le Auswahl selectiontext in die Fehlerkonso-le [5] schreiben soll koumlnnte so aussehen

var selection = require(sdkyselection)var widgets = require(sdkwidget)y

var widget = widgetsWidget(id wikipedia -iconlabel Wikipediacontent ltb style=font-familyyTimesgtWltbgtonClick function() consolelog(selectiontext)

)

Testet man nun den Code mit cfx run (vorherdas Laden des SDK per source binactivenicht vergessen) oumlffnet eine Webseite markiertText klickt auf das bdquoWldquo und schaut in der Feh-lerkonsole (bdquoExtras rarr Web-Entwickler rarr Fehler-konsoleldquo) nach sieht man aber nur bdquoinfo meine-erweiterung nullldquo null bedeutet dass kein Textmarkiert ist Wie kann das sein Sobald auf dasbdquoWldquo geklickt wird verliert die Webseite ndash und da-mit auch die Selektion ndash den Fokus und es gibtnun tatsaumlchlich keinen markierten Text mehr

Das Problem laumlsst sich loumlsen indem sich dieErweiterung immer den zuletzt markierten Textmerkt Dazu wird das select-Ereignis desselection-Moduls verwendet

var selectedText

function selectionChanged(event) selectedText = selectiontext

selectionon(select yselectionChanged)

Die Funktion selectionChanged wird jedesMal aufgerufen wenn ein anderer Text mar-kiert wird Dieser Text wird dann in der Varia-blen selectedText gespeichert Die onClick-Funktion muss jetzt noch in

consolelog(selectedText)

geaumlndert werden Erneutes Testen zeigt dassdieser Loumlsungsansatz wie gewollt funktioniert

Oumlffnen eines TabsNun soll der zum ausgewaumlhlten Text passendeWikipedia-Artikel in einem neuen Tab angezeigtwerden Das dafuumlr noumltige Modul heiszligt tabs [6]und wird mit

var tabs = require(sdktabs)

eingebunden Um einen neuen Tab zu oumlffnenwird die Funktion open verwendet

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 15

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 16: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

onClick function() consolelog(selectedText)tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

Ein Eintrag im KontextmenuumlDamit der Benutzer der Erweiterung mit derMaus nicht immer den bdquolangenldquo Weg zum bdquoWldquo-Symbol zuruumlcklegen muss soll nun ein Eintragim Kontextmenuuml [7] angelegt werden Das benouml-tigte Modul context-menu [8] wird wie uumlblich mit

var cm = require(sdkcontext-menuy)

geladen Der Code zum Erzeugen des Menuumlein-trags koumlnnte so aussehen

cmItem(label Wikipediaartikel aufrufencontext cmSelectionContext()contentScript selfon(click selfypostMessage)onMessage function() consolelog(selectedText)tabsopen(httpdewikipediaorgwindexyphpsearch= + selectedText)

)

Die Beschriftung des Menuumleintrags ist bdquoWikipe-diaartikel aufrufenldquo (label) und der Eintrag wirdnur dann angezeigt wenn auf der angezeigtenSeite Text markiert ist (context)

Um mit der Benutzeroberflaumlche (also auchMenuumleintraumlgen) zu kommunizieren werden so-genannte bdquoContent Scriptsldquo [9] verwendet DerSinn der Content-Skripte ist der dass eswenn in Firefox in Zukunft die Benutzerober-flaumlche Add-ons und auch Webinhalte in un-terschiedlichen Prozessen ausgefuumlhrt werdennicht mehr moumlglich sein wird dass Skripte desBenutzeroberflaumlchen-Prozesses auf Inhalte derAdd-on-Skripte zugreifen koumlnnen deshalb wer-den diese schon jetzt strikt getrennt

Content-Skripte werden in der Regel als sepa-rate Dateien angelegt (dazu gibt es in einemspaumlteren Teil mehr Informationen) Da in die-sem Fall das Skript nur aus einem Befehl be-steht ist es auch legitim diesen Befehl direkt inder mainjs anzugeben Das Skript sendet mitselfpostMessage eine (leere) Nachricht an die

Erweiterung sobald das click-Event ausgeloumlst wird Dannwird die unter onMessage an-gegebene Funktion aufgerufenwelche dann auf die bekannteWeise den Wikipediaartikel laumldt

Um doppelten Code zu vermei-den ist es sinnvoll den Codezum Anzeigen des Artikels in ei-ne eigene Funktion zu schrei-ben

function openArticle() consolelog(selectedText)

tabsopen(httpdewikipediayorgwindexphpsearch= + yselectedText)

cmItem(label Wikipediaartikel aufrufenycontext cmSelectionContext()contentScript selfon(click yselfpostMessage)onMessage openArticle

)

Die onClick-Eigenschaft des Widgets wird ana-log angepasst

Der Menuumleintrag bdquoWikipediaartikel aufrufenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 16

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 17: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

Erstellen von XPI-DateienWenn man anderen seine Erweiterung zur Verfuuml-gung stellen moumlchte gibt man diese in der Regelals installierbare XPI-Datei [10] weiter

Eine solche Datei erzeugt man mit dem Befehl

$ cfx xpi

Die XPI-Datei wird dann durch Ziehen in einFirefox-Fenster installiert

Nach der Installation sollte die Add-on-Leiste au-tomatisch eingeblendet werden Ist dies nicht derFall so liegt das daran dass der Benutzer dieAdd-on-Leiste in der Vergangenheit manuell ge-schlossen hat Sie kann dann uumlber bdquoAnsicht rarrSymbolleisten rarr Add-on-Leisteldquo wieder ange-zeigt werden

Zusammenfassung und AusblickBisher wurde gezeigt wie man Widgets in derAdd-on-Leiste anzeigt (Modul widget) die ak-tuelle Auswahl abfragt (selection) Tabs oumlff-

net (tabs) und Eintraumlge im Kontextmenuuml erzeugt(context-menu) Im naumlchsten Artikel wird unteranderem gezeigt werden wie Panels (kleine Pop-Ups) erstellt werden

Die komplette Erweiterung kann als Archivffox_addonsdk_2targz und als installierbare Er-weiterung ffox_addonsdk_2xpi heruntergeladenwerden

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2013-02

[2] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkselectionhtml

[3] httpsblogmozillaorgaddons20130125changes-to-require-syntax

[4] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdkwidgethtmlclick

[5] httpsdevelopermozillaorgen-USdocsError_Console

[6] httpsaddonsmozillaorgen-USdevelopersdocssdklatestmodulessdktabshtml

[7] httpsdewikipediaorgwikiKontextmenuuml[8] httpsaddonsmozillaorgen-USdevelopers

docssdklatestmodulessdkcontext-menuhtml

[9] httpsaddonsmozillaorgen-USdevelopersdocssdklatestdev-guideguidescontent-scriptsindexhtml

[10] httpsdewikipediaorgwikiXPI

Autoreninformation

Markus Brenneis (Webseite) hat2007 sein erstes Firefox-Add-on ge-schrieben und 2012 beim Entwickelnder Erweiterung LanguageToolFxerstmals das Add-on-SDK benutzt

Diesen Artikel kommentieren

bdquoSympathyldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom660

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 17

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 18: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DOKUMENTATION

Einfuumlhrung in Docbook von Daniel Stender

W er publiziert Software dokumentie-ren moumlchte oder sich mit elektro-nischen Dokumentenformaten be-

schaumlftigt der stoumlszligt irgendwann mit Sicherheitauf Docbook Docbook stammt aus dem Be-reich der EDV-Dokumentation und wird uumlber-wiegend aber nicht ausschlieszliglich dafuumlr ver-wendet Docbook ist ausgereift und umfang-reich genug um eine Grundlage fuumlr die pro-fessionelle Buchproduktion zu sein (so ba-siert zum Beispiel die gesamte Produktions-kette des Verlages OrsquoReilly darauf) wird aberauch fuumlr kleinere Projekte verwendet wiezum Beispiel die Linux-Manpages Docbookwird mittlerweile vielfaumlltig eingesetzt und eskann damit grundsaumltzlich plattformunabhaumln-gig bzw -uumlbergreifend gearbeitet werden

Hallo DocbookDocbook [1] ist eine auf XML basierende Aus-zeichnungssprache fuumlr verschiedenartige Doku-mente Es umfasst eine ganze Reihe von rein se-mantisch definierten Tags mit denen sich die ein-zelnen Elemente zum Beispiel eines Artikels wieUumlberschriften und Textabschnitte zunaumlchst voumllligdarstellungsneutral aufnehmen lassen Docbook-Dateien sind reine Textdateien in einem weite-ren Produktionsschritt lassen sich daraus ver-schiedene Ausgabeformate wie HTMLXHTMLEPUB [2] und PDF erzeugen Die Trennungvon Masterdatei und daraus bzw davon gesetz-tem Dokument wird einigen Lesern bereits von

dem Textsatzsystem LATEX [3] her bekannt seinDocbook unterscheidet sich davon allerdings da-durch dass hier die Quelldatei keine direktenTypensatzbefehle enthaumllt sondern einzelne Text-und Dokumentelemente ausgezeichnet werdendie bei Erzeugen des Ausgabeformates beliebigverwendet werden koumlnnen Textabschnitte zumBeispiel die in der Masterdatei mit ltemphasisgtgekennzeichnet worden sind koumlnnen im Ausga-beformat beliebig gehandhabt kursiv oder fettgesetzt oder aber auch gar nicht hervorgehobenwerden Die strikte Trennung in Inhalt und Form(Prinzip bdquowasldquo und nicht bdquowieldquo) macht Docbooksehr flexibel So koumlnnen zum Beispiel auch ver-schiedenen Sprachversionen oder auch andereVarianten desselben Textes in eine einzige Mas-terdatei geschrieben und dann verschiedene Do-kumente daraus generiert werden

Dieser Artikel fuumlhrt in die Benutzung von Doc-book 50 auf einem typischen Linuxsystem(Ubuntu 1204 LTS) ein dabei werden zumin-dest grundlegende XML-Kenntnisse vorausge-setzt Als weiterfuumlhrende Literatur empfiehlt sichder bei OrsquoReilly im Druck vertriebene bdquoDefinitiveGuiderdquo zu Docbook 50 von Norman Walsh derals Referenz-Dokumentation mittlerweile auchfrei im Netz angeboten wird [4] und zwar zusam-men mit seinem Docbook-Quellcode [5] Empfoh-len sei an dieser Stelle auch das sehr ausfuumlhr-liche Handbuch bdquoDocbook-XML ndash Medienneutra-les und plattformunabhaumlngiges Publizierenrdquo vonThomas Schraitle (ISBN 978-3-938626-14-6)

SchemataDocbook wurde zunaumlchst als DTD-Schema fuumlrden XML-Vorgaumlnger SGML entwickelt Ab Ver-sion 41 wurde daneben auch eine Dokument-typdefinition (DTD) fuumlr XML bereit gestellt Seit50 ist Docbook ausschlieszliglich in XML umge-setzt und zwar hauptsaumlchlich in der gegen-uumlber von DTD stark weiterentwickelten XML-Schemasprache Relax NG [6] in Verbindung miteinigen Ergaumlnzungen in Schematron [7] Die da-neben offiziell gepflegten Schemata in den Spra-chen DTD und W3C XML Schema (XSD) habennicht ganz denselben Funktionsumfang wie die-se Die Docbook-Schemata werden mittlerweilevom Docbook Technical Commitee bei OASIS be-treut und stehen unter der freien BSD-Lizenz Dieaktuelle Version von Docbook ist 50 [8] welcheneben Version 41 und 45 ein offizieller OASIS-Standard ist [9] Der 4x-Zweig ist mit der einge-frorenen Version 45 abgeschlossen worden unddas zukuumlnftige Docbook 51 hat mittlerweile das7 Betarelease erreicht

Auf Debian-basierten APT-Systemen wie Ubuntusind die aumllteren aber noch gebraumluchlichenSGML und XML-DTDs bis hoch zu Version 45in den Paketen docbook und docbook-xmlverfuumlgbar waumlhrend sich die aktuellen Docbook50-Schemata mit dem Paket docbook5-xml be-quem installieren lassen Das Relax NG-Schema(rng) befindet sich dann zusammen mit seinerVariante in kompakter Syntax (rnc) im Ver-zeichnis usrsharexmldocbookrng50

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 18

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 19: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DOKUMENTATION

waumlhrend sich die Schematron-Ergaumlnzungen(docbooksch) sowie die Konvertierungen inDTD- und XML-Schemata in entsprechendenparallelen Verzeichnissen vorfinden Die XML-Schemata lassen sich aber ohne Weiteres auchper Hand von der OASIS-Seite zum Beispiel di-rekt in das Arbeitsverzeichnis einspielen und vondort aus verwenden

Hello worldDas XML einer Docbook-Datei laumlsst sich grund-saumltzlich mit jedem beliebigen Texteditor schrei-ben und bearbeiten Eine rudimentaumlre Docbook-Datei sieht nun folgendermaszligen aus

ltxml version=10 encoding=UTF-8gtltarticle version=50 xmlns=httpdocbookorgnsdocbookgt

lttitlegtTestdokument lttitlegtltparagtHello worldltparagt

ltarticlegt

In der ersten Zeile steht die fuumlr XML uumlblicheStandard-Deklaration welche die Datei als XML-Dokument ausweist und die Textcodierung fest-legt Docbook 5x hingegen wird in Betrieb ge-nommen indem man fuumlr eines der guumlltigenWurzelelemente davon (hier article) die ge-wuumlnschte Versionsnummer und die fuumlr Docbook5x vorgesehene URI als Standard-Namensraumfestlegt

Eine Datei fooxml (gebraumluchlich ist auch dieDateiendung dbk fuumlr Docbook-Dateien) wiediese laumlsst sich nun gegenuumlber des Docbook-Schemas validieren zum Beispiel mit xmllintaus dem Paket libxml2-utils

$ xmllint --relaxng usrsharexmlydocbookschemarng50docbookrng yfooxml

OASIS empfiehlt im Docbook-Howto [10] dafuumlr al-lerdings den Multi-Schema XML Validator (MSV)von Sun [11] der in Java implementiert ist

$ java -jar ~Downloadsmsvmsvjaryusrsharexmldocbookschemarngy50docbookrng fooxml

Sollen modulare Dokumente benutzt werdenbei denen Teilstuumlcke in die Masterdatei mittels

XInclude eingefuumlgt werden so muss gegen-uumlber den Schemata docbookxirngrnc vali-diert werden die sich auch in docbookrng50befinden Aus einem syntaktisch und struktu-rell fehlerfreien dh wohlgeformten und guumlltigenDocbook-Dokument koumlnnen dann in einem weite-ren Schritt mit gaumlngigen XML-Tools verschiedeneAusgabeformate hergestellt werden (siehe weiterunten)

Docbook-ElementeDocbook 50 beschreibt 385 verschiedene Ele-mente mit entsprechenden Tags die im Verhaumllt-nis zu anderen Elementen im Sinne der Baum-struktur von XML auf unterschiedlichen hierar-

chischen Ebenen angesiedelt sind Neben denreinen Steuerungselementen sind diese in dieGruppen Strukturelemente Blockelemente undInline-Elemente zusammengefasst

Von den Strukturelementen sind zunaumlchst dieWurzelelemente ltsetgt und ltbookgt (ein ltsetgtenthaumllt mehrere ltbookgts) zu nennen Ein Buch(ltbookgt) [12] enthaumllt zunaumlchst einen ltinfogt-Abschnitt der den Buchtitel traumlgt und un-ter anderem den Autorennamen [13] beinhal-tet Es kann mit verschiedenen Komponentenausgestattet werden wie z B einer Widmung(ltdedicationgt) einem Vorwort (ltprefacegt)und verschiedenen Dingen wie einem Inhaltsver-zeichnis (lttocgt) Indices (ltindexgt) oder einemGlossar (ltglossarygt) Es besteht aber vor al-lem natuumlrlich aus Artikeln (ltarticlegt) oder Ka-piteln (ltchaptergt) die Textabschnitte (ltparagt)enthalten welche wiederum in verschiedene Ab-schnitte (u a ltsectiongt) unterteilt sein koumln-nen Blockelemente sind nun diejenigen Elemen-te die auf der Ebene von ltparagt angewendetwerden koumlnnen Es handelt sich dabei z B umListen Tabellen und Blockzitate Die z B ausden Buumlchern von OrsquoReilly bekannten separa-ten Hinweise (admonitions) gehoumlren auch hierzu(ltcautiongt ltimportantgt lttipgt) Die Inline-Elemente schlieszliglich sind diejenigen die im lau-fenden Text Verwendung finden Es handelt sichhierbei zum Beispiel um ltemphasisgt Abkuumlrzun-gen Fuszlignoten und Querverweise Da Docbookaus der Software-Dokumentation stammt findensich fuumlr diesen Zweck besonders viele nuumltzlicheElemente

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 19

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 20: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DOKUMENTATION

Ein ltarticlegt kann wie oben gesehen auchauch als selbstaumlndiges Wurzelelement verwen-det werden und kann ndash aumlhnlich wie ein Buch ndash mitverschiedenen Komponenten wie einem Inhalts-verzeichnis Indices Glossaren usw ausgestat-tet werden [14] Die Datei docbook_testxml (ausGruumlnden der Uumlbersichtlichkeit nur verlinkt) zeigtgegenuumlber dem obigen bdquoHello worldldquo-Beispielein mit Info-Block und verschiedenen Abschnit-ten versehenes aufwaumlndigeres Beispiel

Docbook mit EmacsEs ist unbequem XML mit einem Editor zuschreiben der nicht speziell dafuumlr gedacht istoder nicht zumindest besondere Funktionen da-fuumlr bereithaumllt und in Sachen XML-Komfort gibtes groszlige Unterschiede zwischen diesen Pro-grammen Wer nach freien Loumlsungen Ausschauhaumllt stoumlszligt recht schnell auf die Moumlglichkeit Doc-book komfortabel mit Emacs [15] zu edierendem gewoumlhnungsbeduumlrftigen aber vielseitigenEditor-Schwergewicht Seit Version 232 vonGNU Emacs ist nXML [16] der Standard-XML-Modus [17] Es handelt sich bei nXML um einensehr leistungsstarken Major-Mode der nebenspeziellen Eingabehilfen wie Syntax-HighlightingAutoeinruumlckung Tag-Vervollstaumlndigung undWohlgeformtheits-Uumlberwachung auch ei-ne Echtzeit-Guumlltigkeitspruumlfung fuumlr RelaxNG-Schemata sowie kontextsensitive Tag-Vorschlaumlge moumlglich macht

nXML schaltet sich in Emacs automatisch hinzusobald Dateien mit den Endungen xml xslrng oder xthml ediert werden Die fuumlr Ubuntu

GNU Emacs 23 im nXML-Modus beim Bearbeiten einer Docbook-Datei

gepflegten GNU Emacs 23-Pakete beinhaltenfuumlr nXML verschiedene XML-Schemata (nXMLverwendet Relax NG in kompakter Syntax) ge-genuumlber denen automatisch validiert wird Die

im aktuellen Paket auf Ubuntu 1204 (233+1-1ubuntu9) und anderen Distributionen verwen-dete Docbook-Schemadatei ist allerdings veral-tet denn es handelt sich dabei immer noch um

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 20

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 21: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DOKUMENTATION

Version 42 und ein konformes Docbook 50-Dokument wird dementsprechend als unguumlltigbewertet Eine einfache Loumlsung fuumlr dieses Pro-blem ist fuumlr die geoumlffnete Datei ein eigenes loka-les nXML-Schemaregister zu erstellen Nach derTastenkombination Strg + C Strg + S Strg + Fkann die korrekte Schemadatei eingegeben wer-den worauf dann ein Register schemasxml da-fuumlr im aktuellen Arbeitsverzeichnis angelegt wird

Im nXML gibt es mit Strg + Enter eine jeweilskontextsensitive Liste mit allen moumlglichen Vervoll-staumlndigungen von Tags und Attributen sodassbei einem eingegebenen ltp dabei unter anderemdas Element ltparagt vorgeschlagen wird falls esan dieser Stelle guumlltig ist Eine andere wichtigeFunktion ist das Einfuumlgen von korrespondieren-den End-Tags mit Strg + C Strg + F Fehler imDokument werden rot hervorgehoben [18]

Das Element ltparagt in Zeile 10 wird als Fehlerangezeigt weil ein Textabschnitt innerhalb vonltbookgt nur innerhalb eines ltchaptergt vorkom-men darf waumlhrend die Auto-Vervollstaumlndigungdie an der aufgerufenen Stelle moumlglichen Ele-mente ltchaptergt und ltcolophongt vorschlaumlgt

Docbook XSLFuumlr Docbook gibt es eine umfangreiche Samm-lung von Stylesheets fuumlr die Herstellung vonverschiedenen Ausgabeformaten mittels XSL-Transformationen (XSLT) Docbook XSL Siesind ebenfalls weit entwickelt sehr vielseitigund koumlnnen neben den Schemata als zweiteHaumllfte von Docbook angesehen werden Im Pa-

ket docbook-xsl-ns ist fuumlr Ubuntu 1204 eineaktuelle fuumlr Docbook 5 vorgesehene Version176 (letzte Veroumlffentlichung 178) der Style-sheets bequem verfuumlgbar Diese befinden sichnach der Installation in verschiedenen Unter-verzeichnissen von usrsharexmldocbookstylesheetdocbook-xsl-ns BrandaktuelleSnapshots von Docbook XSL werden regelmauml-szligig gepackt [19] Mit Hilfe eines der uumlblichenXSLT-Prozessoren wie Saxon Xalan oder Xslt-proc koumlnnen verschiedene Ausgabeformate wieHTMLXHTML EPUB oder XSL-FO (als Vorstu-fe u a fuumlr PDF-Dateien) aus einem Docbook-Master erzeugt werden Die Stylesheets liegenim XSLT-Format 10 vor und die XSLT 20-Version davon ist bisher rein experimentell DieStylesheets sind gut dokumentiert Bob StaytonsbdquoDocbook XSL ndash The definitive guiderdquo (der auchals generelle Einfuumlhrung gelesen werden kann)ist frei im Netz verfuumlgbar [20] Dies gilt auch fuumlrNorman Walshs bdquoReference Documentationldquo [21]Fuumlr den Prozessor Saxon (Paket libsaxon-java)gibt es fuumlr die Verarbeitung von Docbook speziel-le Erweiterungen im Paket docbook-xsl-saxon

PDF erzeugen

Um mit Docbook eine PDF-Datei zu erzeugenmuss nun zunaumlchst aus der Masterdatei mit Hilfedes dafuumlr gedachten Stylesheets eine XSL-FO-Datei hergestellt werden

$ saxon-xslt -o foofo fooxml usrysharexmldocbookstylesheetydocbook-xsl-nsfodocbookxsl

Danach kann die fo-Datei mit einem FO-Formatierer wie FOP in die gewuumlnschte PDF-Datei umgewandelt werden

$ fop foofo foopdf

Es empfiehlt sich fuumlr die verschiedenen oftausgefuumlhrten Kommandozeilen-Operationen einShellscript oder ein Makefile fuumlr die Benut-zung mit GNU Make anzufertigen Mit dem ToolDblatex koumlnnen aus Docbook PDF-Dateien mitHilfe von LATEX auch ohne Docbook XSL erzeugtwerden dazu muumlssen allerdings umfangreicheAbhaumlngigkeiten erfuumlllt sein bzw mitgezogen wer-den

Parameter manipulierenDie Voreinstellungen der XSL-Stylesheets las-sen sich grundsaumltzlich auf zwei Arten manipulie-ren indem bei Aufruf des XSLT-Prozessoren Pa-rameter an diesen uumlbergeben werden undoderdurch eine separate Anpassungsdatei Die An-passungsdatei docbook_testxsl veraumlndert fuumlrdie XSL-FO-Ausgabe die Standardwerte fuumlr Pa-piergroumlszlige (papertype) von US Letter aufDIN A4 [22] schaltet die automatische Ab-schnittszaumlhlung (sectionautolabel) ein aumln-dert bei den obersten Abschnittsuumlberschrif-ten (sectiontitlelevel1properties) dieSchriftgroumlszlige auf das 15-Fache der Brotschriftund erhoumlht fuumlr diese den oberen Abstand auf15 pt [23]

Es handelt sich dabei selbst um eine konformeXSLT-Datei in der alle Elemente dem dafuumlr vor-gesehenen Namensraum xsl zugeordnet sind

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 21

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 22: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

DOKUMENTATION

Eine aus docbook_testxml resultierende PDF-Datei

Dem XSLT-Prozessor kann dieses selbsterstell-te Stylesheet dann anstatt der originalen Datei

docbook-xsl-nsfodocbookxslangegeben werden die von diesermit xslimport reimportiert wirdAuf diese Art und Weise lassensich die Ausgabedateien bis in alleEinzelheiten kontrollieren

Das automatisch generierte In-haltsverzeichnis laumlsst sich uumlb-rigens verhindern indem mandem Paramater generatetocdie Einstellung article nopuumlbergibt Eine sehr reichhaltigeSammlung von Docbook-Hacks istThomas Schraitles DoCookBook-Projekt [24]

LINKS

[1] httpwwwdocbookorg[2] httpsdewikipediaorgwikiEpub[3] httpsdewikipediaorgwiki

LaTeX[4] httpdocbookorgtdg5[5] httpdocbooksvnsourceforge

netviewvcdocbooktrunkdefguideen

[6] httpsdewikipediaorgwikiRelax_NG

[7] httpsdewikipediaorgwikiSchematron

[8] httpwwwdocbookorgxml50

[9] httpswwwoasis-openorgstandardsdbv50

[10] httpdocbookorgdocshowto[11] httpjavanetdownloadsmsvreleases[12] httpwwwdocbookorgtdg5enhtmlbook

html[13] httpwwwdocbookorgtdg5enhtmlinfohtml[14] httpwwwdocbookorgtdg5enhtmlarticle

html[15] httpsdewikipediaorgwikiEmacs[16] httpwwwthaiopensourcecomnxml-mode[17] httpergoemacsorgemacsemacs232_features

html[18] httpinfohostnmtedutcchelppubsnxml

emacs-commandshtml[19] httpsnapshotsdocbookorg[20] httpwwwsagehillnetdocbookxsl[21] httpdocbooksourceforgenetreleasexsl

currentdocreferencehtml[22] httpdocbooksourceforgenetreleasexsl

currentdocfopapertypehtml[23] httpwwwsagehillnetdocbookxslTitleFontSizes

html[24] httpdoccookbooksourceforgenet

Autoreninformation

Daniel Stender (Webseite) hat einenMagister in Indologie ist Debian-Maintainer und entwickelt im BereichDigital humanities

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 22

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 23: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

Eine kurze Einfuumlhrung in Hadoop von Jens Doumlrpinghaus

M it Hilfe von Hadoop koumlnnen Anwen-dungen entwickelt werden die aufgroszligen Datenmengen effektiv arbei-

ten Dieser Artikel soll eine erste thematischeEinfuumlhrung geben und eine kleine Beispielan-wendung fuumlr MapReduce in Java vorstellenGrundkenntnisse in Java werden fuumlr diesenTeil vorausgesetzt

Hadoop im Umfeld von Big DataWenn es darum geht groszlige Datenmengen zuverarbeiten (das englische Schlagwort dazu lau-tet bdquoBig Dataldquo) scheinen heutzutage keine Gren-zen mehr gesetzt zu sein Doch das ist natuumlr-lich nicht ganz richtig Datenmengen die etlicheTerabyte erreichen koumlnnen meist ohne groumlszlige-re Probleme auf verbundenen Datenbank- undRechnersystemen in akzeptabler Geschwindig-keit verarbeitet werden Doch viele Firmen undForschungseinrichtungen verarbeiten schon we-sentlich groumlszligere Datenmengen Zu nennen isthier beispielsweise Google das einen riesigenIndex von Suchbegriffen und Webseiten spei-chert Niemand moumlchte aber allzu lange auf sei-ne Suchergebnisse warten und so ist es keinWunder dass Hadoop [1] im Umfeld von Googleentwickelt wurde

Hadoop stellt fuumlr die schnelle und parallele Verar-beitung vieler oft komplexer Anfragen uumlber groszligeDatenmengen auf Computerclustern verschiede-ne in Java geschriebene Anwendungen und Bi-bliotheken als Framework zur Verfuumlgung die es

ermoumlglichen Loumlsungen in diesem Bereich zu ent-wickeln Zu nennen ist hier etwa das HadoopDistributed File System (HDFS [2]) dass verteiltauf verschiedenen Rechnern laumluft und sich ausdem seit 2003 entwickelten Google DistributedFile System (GFS [3]) entwickelt hat

HDFS wurde entwickelt um sehr groszlige Dateienzu speichern und auch unter etwaigen Anfangs-verzoumlgerungen einen groszligen Durchsatz beimLesen der Dateien zu erreichen Auszligerdem wur-de Wert darauf gelegt dass das Dateisystemauf normaler Hardware ausfallsicher laumluft Diessind allerdings auch die groumlszligten Defizite So istein zuumlgiger Zugriff auf die Daten nicht immer ge-waumlhrleistet und das Dateisystem wird ineffizientbei vielen kleinen Dateien Fuumlr weitere Informa-tionen sei auf das Buch bdquoHadoop The DefinitiveGuideldquo [4] von Tom White verwiesen

Weiter kommt Hadoop mit zwei Datenbanken fuumlrgroszlige Datenmengen (HBase und Hive) und ver-schiedenen weiteren Programmen

Was ist MapReducebdquoMapldquo bezeichnet ein Verfahren in dem auf jedesElement einer gegebenen Liste eine bestimm-te Funktion angewendet wird bdquoReduceldquo wieder-um ist eine Technik in dem eine Datenstrukturanalysiert und neu zusammengestellt wird DasbdquoMapReduceldquo-Verfahren hat seinen Namen ausdiesen beiden Systemen erhalten funktioniertaber ein wenig anders

In der Map-Phase wird die Eingabe bzw die Da-tenmenge auf der das Verfahren ausgefuumlhrt wer-den soll in kleinere Untermengen aufgebrochendie dann auf verschiedene Knoten des Rechner-clusters verteilt werden Dieses Verfahren kannvon den Knoten rekursiv weiter ausgefuumlhrt wer-den in jedem Fall wird aber das Ergebnis wiederzuruumlckgegeben In der Reduce-Phase werdendiese Ergebnisse gesammelt und zu einem Ge-samtergebnis zusammengestellt Die Map- undReduce-Prozesse koumlnnen und werden idealer-weise auch parallel ausgefuumlhrt

Auch MapReduce wurde 2004 von Google veroumlf-fentlicht [5] Ebenso war Yahoo an den Entwick-lungen beteiligt und 2008 ging es als Projekt zuApache

Voraussetzungen fuumlr MapReduceAls Grundlage der zu analysierenden Datenist die Statistik der Beherbergungsbetriebe inDeutschland gewaumlhlt worden die man alsCSV-Datei aus der Regionaldatenbank Deutsch-land [6] herunterladen kann Dazu kann man un-ter bdquoThemenldquo die entsprechende Tabelle auswaumlh-len und mit bdquoWerteabruf ldquo anzeigen lassen Uumlberdas CSV-Icon kann man die entsprechenden Da-ten herunterladen

Man kann die Analyse der Rohdaten natuumlrlichprogrammseitig gestalten aber um das Beispieleinfach zu halten seien die Daten nun im festenAbstand wie folgt gesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 23

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 24: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

199500000160680000000030000000112400001069190000035943199500000160690000000060000000281700003998590000082828199500000160700000000106000000363300003762520000142199199500000160710000000045000000196300003486880000066315JahrRegionBeherbergungsbetriebeGaumlstebettenGaumlsteuumlbernachtungenGaumlsteankuumlnfte

Die Daten werden auf das HDFS kopiert und dortmit dem MapReduce-Ansatz bearbeitet um dasJahr mit der groumlszligten Anzahl von Beherbergungs-betrieben in einer bestimmten Region zu bestim-men

Auch wenn das folgende Beispiel in Ja-va geschrieben ist muumlssen MapReduce-Anwendungen nicht in Java geschrieben werden

Ebenso wuumlrde die Installation von Hadoop denRahmen dieses Artikels sprengen dazu gibt esgenuumlgend Informationen im Internet Wer es bei-spielsweise nur auf einem Knoten ausprobierenmoumlchte sei auf die detaillierte Einfuumlhrung vonMichael Noll verwiesen [7] Es liegen auch Pa-kete fuumlr einige Distributionen bereit und zu guterLetzt gibt es auch automatische Installationsver-fahren beispielsweise die Data Platform von Hor-tonworks [8]

Die heruntergeladene CSV-Datei muss jetzt indas HDFS-Dateisystem kopiert werden Daskann folgendermaszligen bewerkstelligt werden

$ hadoop dfs -copyFromLocal ybeispielcsv

Dem Befehl hadoop dfs koumlnnen verschiede-ne aus der Shell bekannte Parameter uumlberge-ben werden etwa -ls oder -mv Eine genaue

Auflistung mit Erklaumlrungen findet sich in derHadoop-Dokumentation [9]

Eine MapReduce-AnwendungDas folgende Beispiel soll nun das Maximum derBeherbergungsbetriebe uumlber die Jahre ermittelnDazu soll ihrem Aufruf die Eingabedatei und dasAusgabeverzeichnis uumlbergeben werden

Man erstelle nun eine Klasse MaxGuest In derMain-Funktion pruumlft man ob die Anzahl der Pa-rameter stimmt

if (argslength lt 2)

Systemexit(-1)

Nun wird ein Job-Objekt erstellt Dieses kuumlmmertsich darum dass der benoumltigte Code an die Kno-ten verteilt wird Dazu muss ihm eine JAR-Dateioder einfach eine bestimmte Klasse in diesemFall die Klasse selber uumlbergeben werden

import orgapachehadoopmapreduceyJobJob job = new Job()jobsetJarByClass(MaxGuestclass)jobsetJobName (MaxGuest)

Weiterhin muss eine Mapper- und Reducer-Klasse gesetzt werden diese sollen spaumlter imple-mentiert werden

jobsetMapperClass(MaxGuestMapperyclass)jobsetReducerClass(MaxGuestReduceryclass)

Den Eingabe- und Ausgabepfad kann man andieser Stelle auch setzen

import orgapachehadoopfsPathimport orgapachehadoopmapreduceylibinputFileInputFormatimport orgapachehadoopmapreduceyliboutputFileOutputFormatFileInputFormataddInputPath(job ynew Path(args[0]))FileOutputFormatsetOutputPath(jobynew Path(args[1]))

Nun muss noch naumlher definiert werden welchesFormat Ein- und Ausgabe haben sollen Hadoopbietet dazu vorgefertigte Eingabe- und Ausgabe-klassen in hadoopio die das Lesen und Schrei-ben auf HDFS ermoumlglichen

import orgapachehadoopio

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 24

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 25: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

jobsetOutputKeyClass(Textclass)jobsetOutputValueClass(IntWritableyclass)

Das Eingabe-Format ist automatisch auf TextInputFormat gesetzt Zu guter Letzt kann man mit

jobwaitForCompletion(true)

auf die Fertigstellung des Jobs warten DieKlasse MaxGuestReducer wird von der KlasseReducer abgeleitet

public class MaxGuestReducer yextends ReducerltText IntWritable yText IntWritable gt

Overridepublic void reduce(Text key yIterable ltIntWritable gt werte yContext context) throws yIOException yInterruptedException

In dieser Wertemenge soll nun das Maximumuumlber alle Schluumlssel gefunden werden Da es nurnicht-negative Uumlbernachtungszahlen gibt kannman zu Beginn

int max = 0

setzen Eine Iteration uumlber die Werte ermoumlglichtnun das Maximum zu finden Da es sich um voumll-lig unsortierte Datenmengen handelt kann mandas Maximum nur linear suchen

for (IntWritable eintrag werte)

max = Mathmax(max eintraggety())

Schlieszliglich muss das neue Maximum gesetztwerden was durch die Kontext-Klasse geschieht

contextwrite(key new IntWritable(ymax))

Nun fehlt nur noch die Mapper-Klasse Diese liestdie entsprechende CSV-Datei aus und speichertdie Werte wieder in der Kontext-Klasse

import javaioIOExceptionimport orgapachehadoopioimport orgapachehadoopmapreduceMapper

public class MaxGuestMapper extends MapperltLongWritable Text Text yIntWritable gt

Overridepublic void map(LongWritable key Text value Context context) throws yIOException InterruptedException

String line = valuetoString()String ort = linesubstring(04)int uebernacht = IntegerparseInt(linesubstring(1626))contextwrite(new Text(ort) new IntWritable(uebernacht))

Nach dem erfolgreichen Kompilieren koumlnnen diedrei Dateien zu einer JAR-Datei zusammenge-fuumlgt werden

$ jar cvf MaxGuestjar MaxGuestyclass MaxGuestMapperclass yMaxGuestReducerclass

Man sollte die Umgebungsvariable HADOOP_CLASSPATH noch ndash idealerweise absolut ndash auf die-se Datei setzen Dann kann Hadoop mit

$ hadoop MaxGuest beispielcsv youtput

gestartet werden

Wenn alles funktioniert kann man dann diefertigen Ergebnisse auf HDFS im Verzeichnisoutput bewundern

An dieser Stelle kann man genauer analysierenwie das Programm das im vorherigen Abschnitterstellt wurde ablaumluft In jedem Map-Schritt wird

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 25

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 26: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

ein Teil der Daten komplett in den Speicher ge-laden und verarbeitet Alle Daten werden also ndashim Gegensatz zu herkoumlmmlichen Datenbankmo-dellen wo gezielte Suchen und Modifizierungenmoumlglich sind ndash im Batchbetrieb vollstaumlndig durch-laufen Hadoop schickt die Ausgabe eines Map-Schrittes nun an einen Reducer Dieser wertetdas Maximum aus

ZusammenfassungMan kann ohne viel Muumlhe einfache MapReduce-Anwendungen mit Hadoop gestalten auch fuumlrkomplexere Aufgaben stellt Hadoop schon vielFunktionalitaumlt bereit Hadoop ist ein Projekt fuumlrgroszlige Datenmengen dass derzeit ohne groszligeAlternativen ist und immer noch aktiv weiterent-wickelt wird

Es sei noch auf die Beispiele die mit Hadoopkommen und das Buch bdquoHadoop The DefinitiveGuideldquo von Tom White [10] verwiesen Nebendem Hadoop-Wiki [11] und der offiziellen Projekt-homepage [1] hat dieses als Quelle und Inspirati-on fuumlr den Artikel gedient

LINKS

[1] httpshadoopapacheorg[2] httpsdewikipediaorgwikiHDFS[3] httpsdewikipediaorgwikiGoogle_File_System[4] httphadoopbookcom[5] httpsdewikipediaorgwikiMapReduce[6] httpswwwregionalstatistikde[7] httpwwwmichael-nollcomtutorialsrunning-

hadoop-on-ubuntu-linux-single-node-cluster[8] httpwwwhortonworkscom

[9] httphadoopapacheorgdocsr0172hdfs_shellhtml

[10] httpshoporeillycomproduct9780596521981do

[11] httpwikiapacheorghadoop

Autoreninformation

Jens Doumlrpinghaus hat beruflich mitHigh Performance Computing zu tunDort dominiert Linux aber auch privatist er fast ausschlieszliglich mit Linuxunterwegs

Diesen Artikel kommentieren

bdquoInvestingldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom947

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 26

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 27: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

Laufzeitanalyse mit gprof von Dominik Wagenfuumlhr

D er GNU Profiler (kurz gprof [1]) ist einmaumlchtiges Werkzeug um eigene mitdem GNU-Compiler erzeugte Program-

me auf Laufzeit und Aufrufhaumlufigkeit hin zuuntersuchen Der Artikel soll kurz zeigen wieman gprof selbst benutzen kann

InstallationDer GNU Profiler ist Teil des Paketes binutilsund kann in den meisten Distributionen uumlber dieSoftwareverwaltung installiert werden

VorbereitungDamit man sein eigenes Programm analysierenkann muss dieses zuvor mit der Compiler-Option-pg uumlbersetzt werden Will man auch abhaumlngi-ge Bibliotheken mit analysieren muumlssen dieseebenfalls mit der Option -pg erzeugt werden Imeinfachsten Fall also

$ g++ -pg -O1 maincc -o myprog

Die Option -O1 ist ebenfalls wichtig damit derCompiler nicht zu viele Optimierungen vornimmtwas spaumlter die Zuordnung im Callgraph er-schwert

Als Beispiel dient mein Bot den ich fuumlr den sechs-ten freiesMagazin-Programmierwettbewerb ge-schrieben habe Man kann das Archiv dazu aufder Wettbewerbswebseite [2] herunterladen undmuss es danach natuumlrlich entpacken

Da der Bot auf die Bibliotheken des Wettbewerbszugreift muss man diese neu erstellen Hierzu

gibt es vorgefertigt im Makefile einen bestimm-ten make-Aufruf

$ cd src$ make clean$ make GPROF=Y

Da dies aber auch die Engine mit der Profiling-Option erzeugt was man nicht will muss mandie erzeugte Binaumlrdatei erst loumlschen und noch-mal neu erstellen

$ rm gamebin$ make

Danach kann man sich dem Bot zuwenden unddiesen genauso erstellen

$ cd botsWagenfuehrDominik$ make GPROF=Y

Die Compiler-Zeile sieht dann so aus (gekuumlrzt)

g++ -O3 -Wall -pg -I -c g++ -O3 -Wall -pg -o bot -Ly -lbot -lgame -ltiles -lcards

Programm laufen lassenWenn man sein Programm erstellt hat ruft mandieses ganz normal auf und laumlsst es etwas tunz B eine komplizierte mathematische Gleichungloumlsen oder eine Webseite oumlffnen (das Profilinggeht auch mit grafischen Oberflaumlchen)

$ myprog

Als Ergebnis erhaumllt man im aktuellen Verzeichniseine Binaumlrdatei mit dem Namen gmonout Lei-der laumlsst sich nicht einstellen wo die Datei ge-speichert wird oder wie sie heiszligt

Fuumlr das Beispielprogramm laumlsst man den Bot ein-fach eine Insel entlang laufen

$ startsh fieldsislandtxt botsyWagenfuehrDominikbot

Analysedaten erzeugenZum Schluss muss man die binaumlren Analyseda-ten in gmonout mit dem eigenen Programm ver-knuumlpfen Hierzu ruft man gprof auf und uumlbergibtals Argument das eigene Programm welchesman zuvor analysiert hat Die Ausgabe leitet manam besten in eine Datei um

$ gprof myprog gt myprogstats

Als Beispiel fuumlr den Bot von oben waumlre das

$ gprof botsWagenfuehrDominikbot ygt botstats

Daten analysierenJetzt folgt der schwerste Teil Die Daten muumlssenanalysiert werden Oumlffnet man die Datei gibt eszwei groszlige Bereiche Zum einen eine Aufrufsta-tistik zum anderen ein bdquoCall Graphldquo [3]

Hinweis Die unten stehenden Angaben koumlnnensich zum Abdruck des Artikels veraumlndert haben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 27

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 28: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

da der Wettbewerb zum Zeitpunkt der Erstellungdes Artikels noch nicht beendet warHier nun der gekuumlrzte Auszug zur Aufrufstatistikund Call Graph darunter

1 cumulative self self total2 time seconds seconds calls mscall mscall name3 4903 1085 1085 610802517 000 000 GameValueCalccalculateSimpleFieldValue4 3430 1844 759 426542 002 005 GameValueCalccalculateGameValueRecursive5 619 1981 137 773391188 000 000 StrategyCommandergetIntPos6 7

8 index time self children called name9 [1] 953 000 2109 Botstart [1]10 000 2104 151151 Strategyoperate(StartMessage) [2]11 000 006 945945 Strategyoperate(FloodMessage) [14]12 000 000 11 Strategyoperate(GameboardEndMessage) [27]13 000 000 12681268 MessageHandlerreceiveMessage(IMessage) [55]14 000 000 12681268 StrategyisCommandsAvailable() [56]15 000 000 12681268 StrategyisEnd() const [57]16

Die AufrufstatistikWas bedeuten die einzelnen Spalten der Auf-rufstatistik (dies ist der obere Teil des Listingsoben)

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Bei GameValueCalccalculateSimpleFieldValue in Zeile 3ist das fast die Haumllfte des gesamten Pro-gramms also eine ganze Menge

cumulative seconds ist die absolute Zeit in Se-kunden die die Methode und alle daruumlber

liegenden in der Tabelle benoumltigt haben DieZeit ist eher unwichtig

self seconds ist die absolute Zeit in Sekun-den die die Methode selbst gebraucht hat

Hiernach ist die Liste absteigend sortiertcalls zeigt an wie oft die Methode geru-

fen wurde Die Methode GameValueCalccalculateSimpleFieldValue wurde alsoungefaumlhr 611 Millionen Mal aufgerufen

self mscall berechnet sich einfach als selfseconds 1000 calls In Zeile 3 ist derWert aber so klein (1776 Nanosekundenpro Aufruf) dass nur eine 000 dort steht

total mscall ist Zeit in Millisekunden fuumlr einenAufruf der Methode inklusive aller Unterauf-rufe in der Methode

name ist der Name der MethodeDer Call GraphWas bedeuten die einzelnen SpaltenZeilen(zweiter Teil im Listing) Aufgebaut ist diese in

Bloumlcke die je eine Methode beschreiben

index ist ein eindeutiger Index fuumlr den Block undfuumlr die in dieser Zeile stehende Methode Al-le Methoden vor dieser Zeile rufen die je-weilige Methode des Blocks auf Alle Me-thoden nach der Zeile werden gerufen Mansieht also daran Vorgaumlnger und Nachfolger

time sagt aus wie viel Zeit ein Methodenauf-ruf im Verhaumlltnis zur Gesamtausfuumlhrungs-zeit benoumltigt hat Der Wert sollte mit der Auf-rufstatistik uumlbereinstimmen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 28

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 29: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

self gibt an wie viel Zeit in Sekunden in die-ser Methode verbraucht wurde Unteraufru-fe werde nicht mitgezaumlhlt es handelt sichalso um die Netto-Zeit

children ist dagegen die Zeit die in einer be-stimmten Untermethode verbraucht wurdeIn obigem Beispiel zeigt Zeile 4 wo diemeiste Zeit der Methode Botstart ver-braucht wurde

called gibt an wie oft die jeweilige Methode ge-rufen wurde Der erste Wert ist dabei dieAnzahl aus der gerade untersuchten Metho-deBlock Der zweite Wert gibt die Gesamt-zahl der Aufrufe an

name ist der Name der Methode die in dem je-weiligen Block analysiert wird

Wie optimiert manDas haumlngt immer vom jeweiligen Fall ab undkann hier nur beispielhaft anhand der obigen Bei-spieldaten erfolgen

Die Methode GameValueCalccalculateSimpleFieldValue in Zeile 3 im ersten Listingwird 611 Millionen Mal aufgerufen was nichtwenig ist Man kann nun pruumlfen ob die Anzahlkorrekt ist oder man ggf etwas zu viel berechnetwas unnoumltig ist Nimmt man an dass es stimmtkoumlnnte man die Laufzeit analysieren Was machtdie Methode Bekommt man sie auch nur 10 Na-nosekunden schneller sind das bei der Mengean Aufrufen im Endeffekt 6 Sekunden Zeiterspar-nis was die Laufzeit des Programms bedeutendbeschleunigt

Man kann den Daten auch ablesen dass ei-ne Methode die ggf gar nicht viel tut wie z BStrategyCommandergetIntPos nur aufgrundder Anzahl der Aufrufe viel Zeit verbraucht Hierkoumlnnte man sich uumlberlegen die kleine Methodenoch weiter zu optimieren oder inline zu ma-chen [4]

Leichtere AnalyseDadurch dass die Aufrufstatistik eine feste Brei-te hat kann man die Liste (ohne Call Graph)in LibreOffice (oder OpenOffice) importieren unddann nach den jeweiligen Spalten sortieren Sokann man leichter herausfinden welche Metho-de haumlufig gerufen wird und wo sich eine Optimie-rung ggf lohnen wuumlrde

Es gibt daneben noch das Programm KProf [5]welches sich aber noch auf KDE3 stuumltzt und seit2004 nicht mehr entwickelt wird In der Folge istes nicht sehr leicht das Programm auf aktuellenDistributionen zu kompilieren

Konkret gibt es also fuumlr gprof aktuell (Januar2013) kein grafisches Werkzeug was die Dar-stellung des Call Graphs und der Aufrufstatisti-ken optisch gut praumlsentiert Zusammen mit einerordentliche Quelltext-Navigation koumlnnte man einProgramm etwas leichter optimieren

FazitAuch wenn gprof bdquonurldquo ein Konsolenprogrammund die Ausgabe rein textbasiert ist ist die Analy-se damit sehr hilfreich wenn man Flaschenhaumllse

(engl bdquoBottleneckldquo [6]) in der eigenen Softwareaufspuumlren will

Natuumlrlich sind gprof Grenzen gesetzt Als Alter-native bzw zusaumltzlich kann man Valgrind [7] oderauch OProfile [8] nutzen

LINKS

[1] httpswwwcsutahedudeptoldtexinfoasgprof_tochtml

[2] httpwwwfreiesmagazindemitmachenwettbewerb

[3] httpsenwikipediaorgwikiCall_graph[4] httpsdewikipediaorgwikiInline-Ersetzung

Beispiel_28in_der_Programmiersprache_C2B2B29

[5] httpkprofsourceforgenet[6] httpsenwikipediaorgwikiBottleneck[7] httpvalgrindorg[8] httpoprofilesourceforgenet

Autoreninformation

Dominik Wagenfuumlhr (Webseite)programmiert gerne achtet dabeiaber oft zu wenig auf die Laufzeitseiner Programme gprof hilft ihm beider Laufzeitoptimierung

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 29

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 30: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

LINUX ALLGEMEIN

Subsurface ndash Tauchen unter Linux von Holger Dinkel

D as Programm Subsurface [1] ist einquelloffenes und kostenloses Pro-gramm zur Verwaltung von Tauch-

Logbucheintraumlgen fuumlr Linux MacOS X undWindows Es erlaubt den direkten Import vonDaten aus einer Vielzahl von Tauchcomputer-modellen und -programmen Auszligerdem bietetes eine ansprechende grafische Aufbereitungder vom Tauchcomputer waumlhrend des Tauch-gangs aufgezeichneten Daten Eine Fuumllle wei-terer Informationen zu den Tauchgaumlngen koumln-nen vom Benutzer komfortabel erfasst undverwaltet werden

GeschichteWie auf Schiffen ist es beim Tauchen uumlblich einLogbuch zu fuumlhren in dem Tauchgaumlnge proto-kolliert sowie Tauchzeit -tiefe und -dauer zusam-men mit den Erlebnissen des Tauchgangs notiertwerden Dies ist nicht nur hilfreich um Tauch-gaumlnge besser in Erinnerung zu halten sonderndient oft auch zum Nachweis der Erfahrung einesTauchers Viele Tauch-Zentren verlangen die Vor-lage des Tauchlogbuches bevor sie einen Kun-den ins Wasser lassen Traditionell wurden hier-zu Logbuumlcher aus Papier verwendet jedoch wer-den diese in den letzten Jahren ergaumlnzt oder garersetzt durch Programme die die Daten der obli-gatorisch gewordenen Tauchcomputer auslesenund darstellen Leider wurden diese Programmevon vielen Tauchern als technisch unzureichendschwer zu bedienen oder schlicht als zu teuer

empfunden Viele dieser Programme werden imZusammenhang mit Tauchcomputern durch de-ren Hersteller vertrieben was dazu fuumlhrt dassein Programm oft nur mit den Tauchcomputerneines Herstellers funktioniert

Im Herbst 2011 gab es eine voruumlbergehendeFlaute bei der Linux-Kernel-Entwicklung welcheLinus Torvalds die Zeit gab sich einem beson-deren Problem zu widmen Der Entwicklung ei-nes quelloffenen Programms zur Verwaltung vonTauchlogbucheintraumlgen Subsurface ist das Re-sultat dieser Arbeit die er und weitere Entwick-ler seitdem geleistet haben Seit Herbst 2012hat Dirk Hohndel die Betreuung von Subsurfaceuumlbernommen Mittlerweile wurde das Programmin mehr als ein Dutzend Sprachen uumlbersetzt undwird nach wie vor von einer sehr aktiven Ent-wicklergemeinschaft weiterentwickelt Zum Zeit-punkt dieses Artikels (Februar 2013) steht be-reits der Versionssprung auf 30 an die einenEntwicklungsstand erreicht haben soll der sichnicht mehr nur an Tuumlftler sondern an die ganzeTauchwelt richtet

Installation und VoraussetzungenObwohl Subsurface urspruumlnglich fuumlr Linux entwi-ckelt wurde gibt es mittlerweile auch eigenstaumln-dige Dateien fuumlr Windows und MacOS X Un-ter Linux kann man Subsurface leicht manuellkompilieren die Entwickler streben jedoch andie Software in alle gaumlngigen Distributionen ein-

zupflegen Mittlerweile ist sie bereits fuumlr ArchLi-nux Fedora und Gentoo verfuumlgbar

Subsurface benutzt libdivecomputer [2] eineOpen-Source-Bibliothek von Jef Driesen dieplattformuumlbergreifenden Zugriff auf Tauchcompu-ter der meisten gaumlngigen Hersteller zur Verfuuml-gung stellt Die Liste der unterstuumltzten Tauchcom-puter [3] ist bereits sehr lang und umfasst nahezualle gaumlngigen Geraumlte Die Entwickler freuen sichjedoch stets uumlber Zusendungen von konstrukti-ven Fehlerberichten zu noch nicht unterstuumltztenGeraumlten

BenutzungTauchgaumlnge importierenNach dem Start zeigt das Programm zunaumlchstnicht viel an da noch keine Daten vorliegen inder Regel moumlchte man zuerst seine Tauchgaumln-ge vom Tauchcomputer auf den PC uumlbertragenHilfestellungen dazu gibt es im Handbuch desTauchcomputers sowie auf der Hilfe-Seite desProjekts [4]

Neben dem Import von Daten direkt aus demTauchcomputer erlaubt Subsurface ebenso Log-bucheintraumlge aus einer Vielzahl von Program-men zu importieren und zu verwenden Dies er-leichtert vor allem den Umstieg zu Subsurfaceda man nicht bdquobei Null beginnenldquo muss son-dern seine taucherische Vergangenheit mitneh-men kann was gerade fuumlr den Erfahrungsnach-weis unerlaumlsslich ist

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 30

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 31: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

LINUX ALLGEMEIN

Dialog zur Auswahl des Tauchcomputers

Nach dem Import koumlnnen die Daten angepasstund mit Zusatzinformationen wie Tauchpartneroder Ort angereichert werden Die folgenden Fel-der beschreiben dabei jeweils einen Tauchgang

Location Der Ort an dem der Tauchgang statt-fand (inkl GPS und Kartendarstellungaus OpenStreetMap)

Dive Master Name des Tauchgruppenleitersoder der Tauchaufsicht

Buddy Name des TauchpartnersRating Eine Bewertung des Tauchgangs von 0

bis 5 SternenVisibility Die Sichtweite unter WasserNotes Freitext-Eingabe von Notizen zum

Tauchgang Erlebtes und Gesehenes

Dabei koumlnnen bereits bei vergangenen Tauch-gaumlngen eingetragene Werte (Orte Namen) auseinem Pull-Down-Menuuml wieder ausgewaumlhlt wer-den

Bearbeitungsdialog um alle Details des Tauchgangszu erfassen

Des Weiteren erlaubt die Software detaillier-te Angaben zur Tauchausruumlstung wie An-zug Flaschengroumlszlige -druck und -inhalt Jebesser man seine Tauchgaumlnge dokumen-tiert desto ausfuumlhrlicher wird hinterher auchdie Visualisierung (zB kann Subsurfaceaus Start- und End-Druck des Tauchgasesden jeweiligen Fuumlllstand der Tauchflaschewaumlhrend des Tauchgangs interpolieren)

Etwas gewoumlhnungsbeduumlrftig ist die Tatsa-che dass man (aktuell noch) nicht einfachFelder in der tabellarischen Ansicht editie-ren kann sondern einen Tauchgang durchDoppelklick auswaumlhlt und in einem Popup-Fenster die Aumlnderungen vornehmen kannAn einer Vereinfachung wird gearbeitet

VisualisierungBesonderen Augenmerk verdient die gra-fische Darstellung der Tauchdaten In derUumlbersicht sieht man das Profil des jeweili-gen Tauchgangs Wie tief war man zu wel-chem Zeitpunkt Wie lange war der Tauch-gang insgesamt Etwaige Ereignisse wiezB Wechsel des Tauchgases Warnungendes Tauchcomputers bei einem zu schnel-len Aufstieg oder manuell gesetzte Marken(sog Bookmarks sofern vom Tauchcompu-ter unterstuumltzt) werden durch kleine Warn-dreiecke visualisiert

Auszligerdem zeigt Subsurface den Tempera-turverlauf und den Atemgasverbrauch waumlh-rend des Tauchganges (ggf interpoliertwenn keine Sensordaten vorliegen) Dabei

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 31

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 32: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

LINUX ALLGEMEIN

sind auch Gaswechsel wie es beim technischenTauchen (su) uumlblich ist kein Problem Subsur-face zeichnet fuumlr jedes verwendete Gas jeweilseine eigene Kurve

Es lassen sich auch Dekompressionsdaten be-rechnet mit Hilfe des DekompressionsmodellsBuumlhlmann [5] mit Gradientenfaktoren darstellenWeitere Details wie die maximalemittlere Tauch-tiefe gesamte Tauchzeit oder das Atemminuten-volumen (die Rate des Gasverbrauchs pro Zeitzuruumlckgerechnet auf den Luftdruck an der Ober-flaumlche) zeigt Subsurface in der Detaildarstellunglinks unter bdquoInfos amp Statsldquo an Hier finden sich alleWerte nochmals als Uumlbersicht

Subsurface-Hauptbildschirm

Zusaumltzlich zur Tiefe stellt Subsurface auszligerdemdie relative Aufstiegs- und Abstiegsgeschwindig-keit dar Je schneller dies geschieht desto ge-faumlhrlicher ist das fuumlr den Taucher Daher aumlndertsich die Farbe des Tauchprofils in der Visua-lisierung je nach relativer Geschwindigkeit vongruumln bis rot Ebenso kann der relative Atemgas-Verbrauch uumlber die Farbgebung dargestellt wer-den (dies setzt allerdings einen Flaschendruck-sensor voraus) Farbtoumlne im gelborangerot-Spektrum markieren eine hohe Atemrate waumlh-rend eine niedrigere Atemrate in dunklen Gruumln-toumlnen dargestellt wird

Saumlmtliche Daten lassen sich als detaillierte

Logbuchseiten inklusive Information zu Ausruumls-tung Anmerkungen und Tiefenprofilen ausdru-cken Dies ist nicht nur wichtig zum Archivierensondern ersetzt somit komplett ein herkoumlmm-liches Tauch-Logbuch Das Einzige was nochfehlt ist die Unterschrift des Tauchpartners

Fortgeschrittene AnwendungbdquoTechnisches Tauchenldquo bezeichnet in der RegelTauchen mit zusaumltzlichem Geraumlt und anspruchs-volleren Techniken bei dem nicht zu jeder Zeitder Tauchgang abgebrochen und direkt zur Ober-flaumlche zuruumlckgekehrt werden kann Oft werdenandere Gasgemische als Luft die einen ver-aumlnderten Sauerstoffanteil (Nitrox) haben oder

Helium (TriMix) enthalten verwen-det um groumlszligere Tiefen oder laumlngereTauchzeiten zu erzielen

Subsurface kann problemlos mitverschiedenen Gasgemischen wieLuft Nitrox oder TriMix sowie mitGaswechseln innerhalb desselbenTauchgangs umgehen und berech-net auf Basis der aufgezeichnetenDaten weitere Werte und Statistikenwie etwa das Atemminutenvolumenoder die Sauerstofftoxizitaumlt

Daruumlber hinaus enthaumllt das Pro-gramm einen bdquoPlannerldquo-Modus mitdem ein Tauchgang im Voraus ge-plant werden kann inklusive Gas-wechsel Dekompressions- und Si-cherheitsstops Dies erlaubt es

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 32

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 33: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

LINUX ALLGEMEIN

Druckvorschau

verschiedene Szenarien durchzuspielen und Si-cherheitsmargen einzuplanen

AusblickLinus Torvaldsrsquo Wunsch eine freie Software zurVerwaltung von Tauchgangdaten zu erstellen istnicht nur innerhalb sehr kurzer Zeit in Erfuumlllunggegangen sondern es hat sich auch eine sehraktive Entwicklergemeinde und eine stabile Nut-zergruppe gebildet Die Version 30 erleichtertdie Benutzung und stellt gleichzeitig viele neueFeatures zur Verfuumlgung Subsurface kann von

jedem Taucher benutzt werden besondere Com-puterkenntnisse sind nicht mehr vonnoumlten Diefreie Lizenz und die einfache Installation ladendazu ein das Programm einmal auszuprobieren

LINKS

[1] httpsubsurfacehohndelorgde[2] httpwwwdivesoftwareorglibdc[3] httpsubsurfacehohndelorgdedocumentation

supported-dive-computers[4] httpsubsurfacehohndelorgdocumentation

user-manual

[5] httpwwwcheckdiveeubuehlmannzh-l16html

Autoreninformation

Holger Dinkel ist begeisterter Tau-cher und Tauchlehrer und benutztSubsurface zur Verwaltung allerTauchgaumlnge Diesen Artikel hat ergemeinsam mit der Subsurface-Entwicklergemeinde verfasst

Diesen Artikel kommentieren

bdquoSemicontrolled Demolitionldquo copy by RandallMunroe (CC-BY-NC-25) httpxkcdcom690

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 33

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 34: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

Foto-Kartengenerator von Florian Satzger

Um den eigenen Bot zur Teilnahmeam 6 freiesMagazin-Programmierwett-bewerb [1] besser testen zu koumlnnen

sind moumlglichst viele und unterschiedlicheKarten noumltig Da die Erstellung bdquosinnvollerrdquoKarten relativ aufwendig ist habe ich baldmit Hilfe von ImageMagick [2] und dem Toolpng2field (siehe unten) Karten aus Bildernerstellt Nach Beendigung des Wettbewerbswurde daraus ein komplettes Programm dasInteressierten nun zum Download [3] zur Ver-fuumlgung steht

Funktionsweise anschaulichDa am Ende eine Karte mit nur 3 bdquoFarbenrdquo her-auskommen soll muss das Originalbild auf 3Farben reduziert werden Das koumlnnte selbstver-staumlndlich uumlber eine Funktion uumlblicher Bildver-arbeitungsprogramme wie Gimp [4] passierendoch nutzen diese Programme dann meist Tech-niken wie z B Dithering [5] Das ist jedoch nichtzielfuumlhrend ndash und selbst wenn ein solcher Algo-rithmus keine Anwendung findet hat man kaumKontrolle uumlber das Ergebnis

Aus diesem Grund wurde ein anderer Ansatz ge-waumlhlt Zuerst wird das Bild in Graustufen kon-vertiert wobei hier zumindest zwei verschiedeneVorgehensweisen denkbar sind

bdquoKlassischerdquo Konvertierung in Graustufen (uumlbli-cherweise helligkeitsbasiert)

Aufteilung des Bildes in die einzelnen Farb-kanaumlle und Nutzung eines solchen [6]

Obwohl letzterer Ansatz auf den ersten Blickbdquowildrdquo klingt hat er sich in der Praxis als durch-aus tauglich erwiesen ndash zwar verliert man Detailsaber die groben Umrisse sind oft deutlicher er-kennbar Da das Bild fuumlr eine brauchbare Karteaber sowieso auf houmlchstens 100 bdquoPixelrdquo (d h Kar-tenfelder) Kantenlaumlnge beschraumlnkt werden sollteist der Verlust der Details verkraftbar Beide An-saumltze werden vom Programm unterstuumltzt

Uumlbersicht uumlber den gesamten Vorgang (von oben links nachunten rechts) Original dunkle Bereiche helle Bereiche

Ergebnis

Im naumlchsten Schritt wird dasFoto auf 3 Farben reduziertAls brauchbare Methode hatsich die Erstellung von Bil-dern fuumlr die einzelnen Farbenherausgestellt Dabei wird zu-erst der Kontrast auf 100 ge-stellt und anschlieszligend mit Hil-fe der Helligkeit der Anteil deruumlberfluteten Felder (also diedunklen Bereiche des Bildes)festgelegt

Das Originalbild wird dann ne-giert und die gleiche Prozedurerneut durchgefuumlhrt Somit er-haumllt man die trockenen Felder(das sind die hellen Bereichedes Bildes) Alles was dannnoch nicht festgelegt ist wirdzu nassen Feldern

Verwendung des ProgrammsKompilierungZur Kompilierung wird QT benoumltigt was beiden gaumlngigen Distributionen bereits installiertoder zumindest in der Paketverwaltung verfuumlg-bar ist Wenn nicht koumlnnen die entsprechendenInstallationsdateien und der Quellcode (auch fuumlrWindows) unter QT-Projectorg [7] herunterge-laden werden Das Programm wurde mit denQT-Versionen 463 unter Debian und 501 unterWindows 7 getestet ndash alles zwischendrin sollte

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 34

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 35: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

also auch funktionieren Zur Erstellung reichtdann im Normalfall ein Wechsel ins VerzeichnisGUI und folgende Eingabe in der Konsole

$ qmake$ make

Zusaumltzlich wird ImageMagick benoumltigt Auch die-ses ist bei den meisten gaumlngigen Distributionenvorinstalliert bzw sollte andernfalls zumindest inder Paketverwaltung zu finden sein Ansonstenlassen sich Quellcode und Binaries (auch fuumlrWindows) auf der Webseite ImageMagickorg [2]herunterladen

Nutzung Schritt fuumlr SchrittDas Programmfenster ist in vier Teile aufgeteilt

Oben befindet sich der Hauptteil in dem alleEinstellungen vorgenommen werden koumlnnenDie einzelnen Tabs entsprechen dabei den ein-zelnen durchzufuumlhrenden Schritten

Unten links ist das Nachrichtenfenster in demInformationen und Fehler angezeigt werden

Rechts daneben befindet sich das Schnellhil-fefenster in dem Anweisungen zum aktuell ge-oumlffneten Tab angezeigt werden

In der Statusleiste am unteren Rand befindetsich ein Fortschrittsbalken der den Fortschrittder aktuellen Aktionen anzeigt und der Weiter-Button uumlber den das Programm Schritt fuumlrSchritt durchlaufen werden kann

Nach dem Start des Programms oumlffnet sich derTab bdquoAllgemeinesldquo

Das Startfenster

Hier muumlssen zuerst einige Voreinstellungen vor-genommen werden ndash zum Beispiel muumlssen diePfade fuumlr ImageMagick eingetragen werden DesWeiteren wird der Pfad zum umzuwandelndenBild ins entsprechende Feld eingetragen und diegewuumlnschte Groumlszlige der Karte eingegeben Dabeireicht es eine Dimension einzugeben die ande-re wird automatisch berechnet Es ist empfeh-lenswert Kartengroumlszligen bis maximal 100x100 zuverwenden eher sogar kleiner da sonst die Botssehr viele Runden uumlberleben (mein Bot hat uumlber

1400 Runden auf einer 100x75-Felder Karte ge-schafft) Saumlmtliche Pfade koumlnnen auch durcheinen Klick auf den nebenstehenden Button (bdquoldquo)im Dateisystem gewaumlhlt werden

Der Haken bdquoerweiterte Einstellungenldquo erweitertdie Tableiste um drei weitere Tabs mit denenman das Feintuning vornehmen kann

Ein Klick auf bdquoWeiter ldquo oumlffnet den Tab bdquoVoraus-wahlldquo Auf diesem Tab kann man auswaumlhlen wel-che Art der Graustufenkonvertierung man ver-

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 35

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 36: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

wenden moumlchte Hierbei ist darauf zu achten dasBild zu verwenden auf dem die groben Umrissebesonders deutlich erkennbar sind und einen ho-hen Kontrast aufweisen Auf Details kann mangetrost verzichten da sie beim spaumlteren Ver-kleinern sowieso herausfallen Die Auswahl er-folgt uumlber die Radiobuttons unter den Vorschau-bildern

Der naumlchste Tab bdquoUumlberflutetldquo ermoumlglicht ndash werhaumltte es gedacht ndash die Anpassung der uumlberflu-teten Felder

Anpassung der uumlberfluteten Felder

Der Slider unter der Vorschau erlaubt es dieFilterung restriktiver oder liberaler einzustellenndash im Endeffekt wird einfach die Helligkeit ange-passt Schwarze Bereiche werden spaumlter uumlberflu-tet Erfahrungsgemaumlszlig muss der Slider eher einStuumlck nach links geschoben werden etwa auf die30 -Stellung

Der dritte Tab bdquoTrockenldquo enthaumllt die identischeFunktionsweise wie der vorhergehende ndash nurdass man hier die trockenen Bereiche einstellenkann

Auch hier muss der Regler erfahrungsgemaumlszlig einStuumlck nach links verschoben werden meist etwaauf die 40 -Stellung

Nachdem man seine Einstellungen passend vor-genommen hat erreicht man mit einem Klick aufbdquoWeiter ldquo den Tab bdquoFertigstellenldquo

Diesen Tab erreicht man auch direkt nach derStartseite wenn man den Haken bei bdquoerweiter-te Einstellungenldquo entfernt In diesem Fall werdendie letzten Einstellungen (oder falls es keine gibtdie Standardeinstellungen) verwendet

Hier koumlnnen nun die fertige Karte betrachtetund die Startposition festgelegt werden Dies ge-schieht einfach durch einen Klick auf das entspre-chende Feld (das natuumlrlich nicht uumlberflutet wohlaber nass sein darf) Anschlieszligend kann mit ei-nem Klick auf bdquoSpeichernldquo die Karte abgespei-chert werden Wird keine Startposition festgelegtgeschieht das automatisch durch das Programmbevor die Karte gespeichert wird

Ein kleiner Einblick in die Interna desProgrammsDa die Karten mit ImageMagick erzeugt wurdenlag es nahe auch das Programm auf ImageMa-gick aufzubauen Die GUI und diverse Hilfsfunk-tionen werden vom QT-Framework bereitgestelltZwar existiert fuumlr ImageMagick auch eine C++-Schnittstelle das Programm verwendet jedochdie Kommandozeilenversion Hauptgrund hierfuumlrist die nicht triviale Verbindung von QT (zur Dar-stellung) und ImageMagick ndash hier haumltte man ent-weder wieder den Weg uumlber temporaumlre Dateien

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 36

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 37: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

Auswahl der Startposition und Speichern der Karte

oder uumlber mehr oder minder komplexe Transfor-mationen der Daten im Speicher gehen muumlssenZum anderen treten so deutlich weniger Proble-me beim Kompilieren auf da keine zusaumltzlichenAbhaumlngigkeiten dazukommen Die Performanceist trotzdem auch auf etwas betagteren Rech-nern ausreichend

Verwendet werden die ImageMagick-Tools con-vert mogrify und composite Dabei wird das Bildaus Geschwindigkeitsgruumlnden zuerst auf einemaximale Groumlszlige von 500x500 Pixel verkleinert

Die gesamten Operationen finden auf temporauml-ren Dateien statt

Die Vorschaubilder werden dabei nur erstelltwenn erweiterte Einstellungen gewaumlhlt wurdenansonsten werden beim Oumlffnen des bdquoFertigstel-lenldquo-Tabs sofort alle Schritte mit der Zielgroumlszligedurchgefuumlhrt

Die Schritte werden nun im Einzelnen vorgestellt

Zuerst wird das Bild auf Zielgroumlszlige verkleinertund in das PNG-Format konvertiert da so ver-

lustfreie Kompression moumlglich ist Das ist wichtigda sonst keine sauber getrennten Farben heraus-kommen sondern die Raumlnder bdquoausfransenrdquo oderandere Kompressionsartefakte entstehen

$ convert -resize 100x75 bildjpg ybildpng

Danach wird das Bild in Graustufen konvertiertIm Beispiel sieht man die Extraktion des Rotka-nals

$ mogrify -channel R -separate bildypng

Als naumlchstes werden die uumlberfluteten Felder her-ausgefiltert

$ convert -brightness -contrast -23yx100 bildpng dunkelpng

und danach die trockenen Felder

$ convert -negate -brightness -ycontrast -23x100 bildpng hellpng

Aus den vorhandenen Bildern kann man die nas-sen Felder erzeugen

$ composite dunkelpng hellpng yhellpng mediumpng

Aus den erstellten Bildern werden Masken er-zeugt und die Bilder ein letztes Mal bearbeitet

$ cp hellpng maskpng$ mogrify -negate hellpng$ mogrify -negate mediumpng

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 37

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 38: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

PROGRAMMIERUNG

$ composite mediumpng maskpng ymaskpng mask2png$ mogrify -brightness -contrast 50 ymediumjpg

bevor sie alle zu einem Gesamtbild zusammen-gefuumlgt werden

$ composite mediumpng hellpng ymaskpng outpng$ composite dunkelpng outpng ymask2png outpng

Zum Schluss wird das Bild in eine Karte konver-tiert und die Startposition angefuumlgt

$ png2field outpng outtxt

Das Programm png2field kann eigenstaumlndigkompiliert werden (es handelt sich um dasin der Einfuumlhrung genannte Tool) im GUI-Programm ist die entsprechende Funktionalitaumlt

direkt eingebaut Das Programm erwartet einBild welches nur die drei Farben Schwarz (RGB000) Grau (RGB 128128128) und Weiszlig (RGB255255255) enthaumllt Es erstellt daraus eine voll-staumlndige Karte mit Abmessungen in der nurnoch die Zeile ROUND 1 XY fuumlr die Startpositionangefuumlgt werden muss

FazitIch habe das Programm an verschiedenen Fotoserfolgreich ausprobiert ndash auch wenn letztendlichdie Zeit fehlte um die neu gewonnenen Erkennt-nisse in das Feintuning des Bots einflieszligen zulassen

LINKS[1] httpwwwfreiesmagazindesechster_

programmierwettbewerb[2] httpwwwimagemagickorg[3] httpdownloadsfa-satzgerdeindexphpaction=

downloadfileampfilename=Fotokonvertertargz

[4] httpwwwgimporg[5] httpsdewikipediaorgwikiDithering_(Bildbear

beitung)[6] httpsdewikipediaorgwikiFarbkanal[7] httpsqt-projectorg

Autoreninformation

Florian Satzger (Webseite) program-miert seit Jahren hobbymaumlszligig inverschiedenen ProgrammiersprachenTools die ihm das alltaumlgliche Lebenvereinfachen ndash oder auch einfachSpaszlig machen

Diesen Artikel kommentieren

bdquoAAAAAAldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom1001

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 38

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 39: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

REZENSION

Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage) von Dominik Honnef

D er Einstieg in die Welt der Netzwerk-technik ist haumlufig ein schwieriger vorallem wenn man nicht weiszlig wo man

beginnen soll Ob und wie tiefgehend dashier vorgestellte Buch diesen Einstieg bietenkann wird im Folgenden dargestellt

Redaktioneller Hinweis Wir danken GalileoComputing fuumlr die Bereitstellung eines Rezensi-onsexemplares

Die ZielgruppeDas Buch faumlngt bei den Grundlagen der Netz-werktechnik an und erklaumlrt so zum Beispiel wasein Netzwerk uumlberhaupt ist

Auch das OSI-Modell [1] sowie grundlegendeNetzwerkkomponenten wie der Switch und derHub werden erklaumlrt Es ist positiv anzumerkendass Techniken wie Ethernet und Wireless LANnicht nur rein oberflaumlchlich und abstrakt behan-delt werden sondern die einzelnen Standardssowie ihre Entwicklung Staumlrken und Schwaumlchenbeleuchtet werden

Tabellen mit Daten wie der maximalen Transferra-te Kabellaumlnge und Aumlhnlichem finden sich eben-falls zur Genuumlge

Doch gerade wegen dieser Ausrichtung fuumlr Ein-steiger ist das Buch weniger fuumlr Leute geeignetdie schon ein weiterreichendes Verstaumlndnis be-sitzen und dieses vertiefen wollen

Zum einen beschraumlnkt sich das Buch bis aufwenige Ausschweifungen nur auf die Beduumlrfnis-se des SoHo-Bereichs [2] Dies wird zum Bei-spiel daran ersichtlich dass Routing-Protokollewie z B das BGP [3] nicht besprochen werden

Zum anderen werden zwar die Grundlagen zu-mindest fuumlr Einsteiger recht ausfuumlhrlich behan-delt alle weiteren Themen sind aber bei Wei-tem nicht so detailliert und eher aus der Sichteines Anwenders beschrieben Es kommt seltenvor dass Protokolle im Detail analysiert werdenoder dass es Grundsatzdiskussionen zu Vor- undNachteilen diverser Loumlsungen gibt

Der InhaltDas Buch ist in fuumlnf Teile und 45 Kapitel auf-geteilt Die ersten vier Teile (21 Kapitel) umfas-sen jedoch nur 165 der insgesamt 704 SeitenDas fuumlnfte Kapitel bdquoPraxiswissenldquo umfasst somitden Groszligteil des Buches und bestaumltigt dass esweniger um trockene Theorie und mehr um dasVorstellen von moumlglichst vielen Themen geht so-dass manch Kapitel auch nur um die zehn Seitenlang ist

So werden nebst Grundlagen zur Netzwerktech-nik auch Themen wie DynDNS VirtualisierungBackup-Loumlsungen VoIP und ndash natuumlrlich ndash dieCloud behandelt

Leider fehlt dem Buch im letzten Teil eine Artroter Faden So besteht keine Verbindung zwi-schen den meisten Kapiteln und das letzte Ka-

pitel endet abrupt gefolgt vom Anhang ohne jeg-liches Schlusswort oder Fazit

Eine komplette Uumlbersicht uumlber alle Themen undihren Umfang kann dem Inhaltsverzeichnis [4]entnommen werden

Das BeiwerkDas Buch kommt mit reichlich Beiwerk daher ImAnhang finden sich eine Einfuumlhrung zum Um-gang mit Linux auf der Konsole ein Glossar mitErklaumlrungen zu allen relevanten Begriffen diezum Verstaumlndnis des Buches von Noumlten seinkoumlnnten und ein Index welcher in Kategorieneingeteilt ist

Die beigelegte DVD ist gefuumlllt mit Tools (sowohlfuumlr Linux als auch Windows und Mac OS X)und mehreren virtuellen Maschinen wie etwabdquosiegfriedldquo einem Homeserver der von den Auto-ren erstellt wurde und bdquoopenfilerldquo ein Netzwerk-Datenspeicher welche beide auf Linux aufset-zen

Diese virtuellen Maschinen koumlnnen direkt mittelsVMware Player oder VirtualBox gestartet werdenund ermoumlglichen somit eine schmerzfreie Moumlg-lichkeit zum Experimentieren

LinuxDas Buch soll fuumlr Linux- Mac-OS-X- undWindows-Anwender gleichermaszligen von Nutzensein Und obwohl das Buch wann immer noumltigauch auf Linux Bezug nimmt merkt man dasses nicht im Fokus der Autoren lag

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 39

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 40: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

REZENSION

BuchinformationenTitel PC-Netzwerke Das umfassende Hand-

buch [4]Autor Martin Linten Axel Schemberg Kai Suren-

dorfVerlag Galileo Computing 2013Umfang 705 SeitenISBN 978-3-8362-1899-3Preis 2990 Euro

So beschraumlnken sich die Autoren bei vielen Aus-fuumlhrungen leider auf openSUSE da es sich bdquoimdeutschsprachigen Raum groszliger Beliebtheitldquo er-freut Dies war vermutlich vor einigen Jahren beiden ersten Auflagen des Buches der Fall Heut-zutage wuumlrde man eher an andere Distributio-nen denken Des Weiteren wird in den allermeis-ten Faumlllen YaST [5] das grafische Konfigurations-werkzeug von openSUSE verwendet was es er-schwert das Gelernte auf andere Distributionenzu uumlbertragen

Windows-Anwender haben es hier wesentlichbesser Von Windows XP bis Windows 7 wird je-de einzelne Version erlaumlutert

Und manchmal wird Linux ganz uumlbergangen Sowird im Kapitel bdquoNetzwerk-Backupldquo zwar nebstdiversen Windows- und OS-X-Loumlsungen auchein plattformuumlbergreifendes Java-Programm vor-gestellt aber keine Loumlsungen die auf Linux zu-geschnitten waumlren Und im Kapitel zu VoIP wirdnur ein Softphone [6] vorgestellt welches einzigunter Windows laumluft Auch bdquoiptablesldquo wird leidernahezu nicht behandelt

Weiterhin muss gesagt werden dass bei den vor-gestellten Tools wenig Ruumlcksicht darauf genom-men wird ob diese frei (im Open-Source-Sinne)sind oder nicht

Da es aber ohne Linux nicht geht und auch diemitgelieferten virtuellen Systeme (siehe bdquoDas Bei-werkldquo) auf Linux aufbauen gibt es im Anhangeinen Abschnitt zu den grundlegenden Linux-werkzeugen und dem Umgang mit diesen Selbstder Editor vi wird grundlegend erklaumlrt

FazitLeute die nicht wissen wofuumlr bdquoTCPrdquo und bdquoIPrdquo inbdquoTCPIPrdquo stehen was Subnetze sind oder wasuumlberhaupt alles zum Bereich der Netzwerktech-nik gehoumlrt sollten in Erwaumlgung ziehen das hiervorgestellte Buch zu lesen Es bietet einen gutenEinstieg und Uumlberblick ist einfach zu verstehenund weist keine inhaltlichen Fehler auf

Auch die diversen Schwaumlchen im Bereich Linuxsind kein Grund das Buch zu meiden Ein groszligerTeil des Buches beschaumlftigt sich mit plattform-uumlbergreifenden Themen und die Schwaumlchen be-schraumlnken sich auf einzelne Abschnitte

Sollte jedoch schon ein fortgeschrittenes Ver-staumlndnis von Netzwerken bestehen und ein Groszlig-teil der Themen zumindest grundlegend bekanntsein muumlsste dieses Buch vermutlich nicht ge-kauft werden Hier sollte man sich auf spezifi-schere Literatur konzentrieren

LINKS

[1] httpsdewikipediaorgwikiOSI-Modell

[2] httpsdewikipediaorgwikiSmall_Office_Home_Office

[3] httpsdewikipediaorgwikiBorder_Gateway_Protocol

[4] httpwwwgalileocomputingdekatalogbuecherinhaltsverzeichnisgptitelID-3075

[5] httpsdewikipediaorgwikiYaST[6] httpsdewikipediaorgwikiSoftphone

Autoreninformation

Dominik Honnef (Webseite) ist derMeinung dass jeder Computernutzerein grundlegendes Verstaumlndnis vonComputernetzwerken haben sollte

Diesen Artikel kommentieren

bdquoElevator Inspectionldquo copy by Randall Munroe(CC-BY-NC-25) httpxkcdcom897

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 40

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 41: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

REZENSION

Rezension Die Kunst des Vertrauens von Dirk Deimeke

W enn der bdquoCryptopapstldquo BruceSchneier [1] ein Buch veroumlffentlichtgeht man im Allgemeinen davon aus

dass es sich um ein Buch uumlber Verschluumlsse-lung oder Datensicherheit handelt Das The-ma bdquoVertrauenldquo ist davon gar nicht so weitentfernt allerdings geht es in dieser Abhand-lung nicht um technisches sondern vielmehrum eine funktionierende Gesellschaft

Redaktioneller Hinweis Wir danken dem mitp-Verlag fuumlr die Bereitstellung eines Rezensions-exemplares

Basis des Buches ist die Frage bdquoWie viel Vertrau-en (der Individuen untereinander) braucht eine le-bendige fortschrittsorientierte Gesellschaft undwie viel Vertrauensbruch darf bzw muss sie sichleistenldquo

Neben vielen anderen Dingen die man uumlberBruce Schneier sagen kann sind die folgendenbeiden interessant

Schneier initiierte das Programm Pass-word Safe [2] ein plattformuumlbergreifenderPasswort-Manager

Er steuerte den Solitair-Verschluumlsselungsal-gorithmus der auf einem Kartenspiel basierttatsaumlchlich auch funktioniert und einer in-tensiven kryptografischen Analyse standhaumlltzum sehr lesenswerten Roman bdquoCyrptonomi-conldquo [3] von Neal Stephenson bei

Vertrauen Gesellschaft Geht auchohneNein geht es eben nicht Zu Beginn legt Schnei-er dar dass es sehr viele Lebenssituationen gibtin denen man bdquoblindldquo darauf vertraut dass sichandere entsprechend allgemein guumlltiger Normenverhalten

So laumldt man beispielsweise Handwerker zu sichnach Hause ein und vertraut darauf dass sie ihreArbeit tun Man holt kein polizeiliches Fuumlhrungs-zeugnis ein und verlangt auch keine Nachweisedie belegen dass der Handwerker von seinemHandwerk etwas versteht

Man vertraut darauf dass die Lebensmittel dieman kauft gesundheitlich unbedenklich sind undanalysiert nicht alles chemisch

Dieses Vertrauen funktioniert nur wenn es nurin einem minimalen Bruchteil aller Vorfaumllle miss-braucht wird Es gibt allerdings immer Abweich-ler die sich gegen Normen verhalten Von mo-ralischen Problemen einmal abgesehen geht esdem Einzelnen besser wenn er existierende Nor-men oder Gesetze nicht einhaumllt (Uumlbervorteilunganderer Diebstahl Toumltung unliebsamer Perso-nen ) aber die Gesellschaft nimmt daranSchaden und funktioniert letztendlich nicht mehrGut fuumlr die Gesellschaft hingegen ist es wennsich die Individuen an Normen und Gesetze hal-ten Dieses Spannungsfeld ist sehr bruumlchig undje nach Gesamtzustand der Gesellschaft kann

das Missverhalten Einzelner groszlige Auswirkun-gen auf das Ganze haben

Aufbau des BuchsDas Buch ist in vier Teile gegliedert Nach derAnmerkung fuumlr den Leser und dem Uumlberblick be-ginnt der erste Teil bdquoDie Wissenschaft des Ver-trauensldquo in dem sich die vier Kapitel bdquoEine Natur-geschichte der Sicherheitldquo bdquoDie Evolution der Ko-operationldquo bdquoEine Sozialgeschichte des Vertrau-ensldquo und bdquoGesellschaftliche Dilemmataldquo findenGerade das letzte Kapitel zeigt wie unterschied-lich die Interessen zwischen Gesellschaft und In-dividuen sind

In zweiten Teil wird ein Vertrauensmodell erarbei-tet und uumlber verschiedene Arten von Druck ndash ge-sellschaftlich moralisch Reputation und institu-tionell ndash definiert Abgeschlossen wird der Teil miteiner Betrachtung von Sicherheitssystemen

bdquoDie reale Weltldquo ist das Thema des vorletztenTeils und erlaumlutert im Sinnzusammenhang kon-kurrierende Interessen Organisationen und In-stitutionen Hier wird auch erklaumlrt wie sich dieDruckmechanismen die bei Einzelnen wirkenauf Organisationen uumlbertragen lassen

Die Schlussfolgerungen bilden den letzten Teildes sehr lesenswerten Buchs Dort geht esdarum wie gesellschaftliche Druckmechanismenversagen was Vertrauen mit technologischemFortschritt zu tun hat und ein Ausblick in die Zu-kunft wird gegeben

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 41

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 42: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

REZENSION

BuchinformationenTitel Die Kunst des Vertrauens [4]Autor Bruce SchneierVerlag mitp-Verlag 2012Umfang 464 SeitenISBN ISBN 978-3-8266-9216-1Preis 2995 Euro

Abschlieszligend folgen die obligatorischen Danksa-gungen die von sehr ausfuumlhrlichen Anmerkun-gen und einem umfangreichen Literaturverzeich-nis gefolgt werden

InhaltSchneier bedient sich durch das ganze Buch beifundierten und nachgewiesenen wissenschaftli-chen Erkenntnissen aus den Bereichen Soziolo-gie Biologie und Anthropologie Dank der sehrguten Uumlbersetzer ndash das englische Original kannich leider nicht beurteilen ndash liest sich das Buchaber nicht wie eine wissenschaftliche Abhand-lung sondern eher wie eine sehr gut verstaumlndli-che populaumlrwissenschaftliche Beschreibung oh-ne dabei ungenau zu werden

Das Buch ist gerade auch wegen gut gewaumlhl-ter Beispiele und Praxisbezuumlge sehr lesenswertso erfaumlhrt man am Beispiel einer Population dieaus Hermelinen und Hasen besteht wie Evo-lution funktioniert Ausfuumlhrlich wird anhand ei-nes Beispieles von Tauben und Falken demons-triert wie unterschiedlich sich das Verhaumlltnis ent-wickeln kann wenn man am Anfangsverhaumlltnisschraubt

Ausgehend von den Beispielen werden dannRuumlckschluumlsse auf die menschliche Gesellschaftgezogen wo einige der bdquoEingangsparameterldquo an-ders sind So neigen beispielsweise Menschendazu fair zu sein und wollen unfaires Verhaltenbestraft sehen Das kann sich aber in verschie-denen Situationen aumlndern

Mit der Spieltheorie kann man die Auswirkungverschiedener Druckmechanismen auf eine Ge-sellschaft simulieren und beschreiben Die Er-gebnisse waren fuumlr mich im Einzelfall sehr uumlber-raschend

FazitMir hat das Buch sehr gut gefallen und es hatmich nachdenklich gemacht Tatsaumlchlich haumltteich vor der Lektuumlre nie gedacht dass an sovielen Stellen im menschlichen ZusammenlebenVertrauen eine Rolle spielt Die Abhandlung liestsich sehr gut und sorgt fuumlr einige bdquoAha-Effekteldquo

Zitat von der Webseite bdquoFehlen persoumlnliche Be-ziehungen haben wir keine andere Wahl als Si-cherheit durch Vertrauen zu ersetzen Zugleichist aber ein Zuviel an Harmonie schlecht dennohne ein gewisses Maszlig an Regelverletzungenwerden Innovation und sozialer Fortschritt un-moumlglichldquo

Der Verlag hat dankenswerterweise ein Exem-plar dieses Buches fuumlr eine Verlosung bereit ge-stellt Zur Teilnahme am Gewinnspiel muss diefolgende Frage richtig beantwortet werden

bdquoWie heiszligt das bekannteste Werk von BruceSchneier das als Standardwerk in der Kryptogra-phie giltldquo

Die Antworten koumlnnen bis zum 10 Maumlrz2013 2359 Uhr uumlber die Kommentarfunkti-on unterhalb des Artikels oder per E-Mail an

geschickt werdenDie Kommentare werden aber bis zum Ende derVerlosung nicht freigeschaltet Das Buch wirdnach Ablauf der Frist unter den Einsendern mitder richtigen Antwort verlost Der Rechtsweg istwie immer ausgeschlossen

LINKS

[1] httpsdewikipediaorgwikiBruce_Schneier[2] httppasswordsafesourceforgenet[3] httpsdewikipediaorgwikiCryptonomicon[4] httpwwwit-fachportaldeshopbuchDie Kunst

des Vertrauensdetailhtmlb183566

Autoreninformation

Dirk Deimeke (Webseite) beschaumlftigtsich seit 1996 aktiv mit Linux undarbeitet seit einigen Jahren alsSystemadministrator und SystemEngineer fuumlr Linux und Unix Inseiner Freizeit engagiert er sich fuumlrOpen-Source-Software

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 42

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 43: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

MAGAZIN

Die Gewinner des sechsten Programmierwettbewerbs

V om 1 Dezember 2012 [1] bis zum31 Januar 2013 [2] fand der sechs-te freiesMagazin-Programmierwettbe-

werb [3] statt In diesem Zeitraum konn-ten Programmierinteressierte ein Programm(einen so genannten Bot) einreichen der ver-sucht auf einer untergehenden Insel Feldertrockenzulegen um moumlglichst lange zu uumlber-leben Die Auswertung der eingereichten Bei-traumlge ist beendet und die Gewinner stehenfest

TeilnehmerInsgesamt haben 20 Teilnehmer fuumlr den Wettbe-werb einen Bot eingereicht Damit war die Ak-zeptanz sehr hoch was uns natuumlrlich freut Auchzwei Schulklassen des Gymnasiums Egg [4] ha-ben unter Lehrer Dominik Bartenstein teilgenom-men Es freut uns ebenso dass die Aufgabeauch als Schulstoff dienen konnte

Unter den Einsendungen waren wieder ver-schiedenste Sprachen vertreten darunter wohl-bekannte wie C++ Python und Java aber auchbdquoExotenldquo wie Haskell oder Scala wurden genutzt

Als Gewinn konnten die ersten drei Plaumltze einender folgenden drei Preise mitnehmen

das Computerspiel bdquoAnkh ndash Herz des Osi-risldquo [5] fuumlr Linux

das Computerspiel bdquoJack Keaneldquo [6] fuumlr Linux das Solo-Brettspiel bdquoPinguintanzldquo [7]

Zusaumltzlich gab es fuumlr die Plaumltze 1 bis 10 eine CDdes letztjaumlhrigen Free Music Contest 2012 [8]

AuswertungNachdem am 31 Januar 2013 alle Einsendun-gen vorlagen wurde der Wettbewerb gestartetDabei wurde jeder Bot je 1000 Mal auf den vor-handenen InselnSpielfeldern getestet und amEnde der Mittelwert der uumlberlebten Runden fuumlrjedes Spielfeld berechnet Diese haumlufige Wieder-holung wurde durchgefuumlhrt da die Felder einerInsel zufaumlllig uumlberflutet wurden und durch dieWiederholung und den Mittelwert eine bessereAussage uumlber die bdquoIntelligenzldquo eines Bots getrof-fen werden konnte

Insgesamt mussten die Bots auf 22 Spielfeldernihr Geschick beweisen 12 Inselfelder stammtendabei von der Wettbewerbsleitung und waren bisauf die Beispielinsel islandtxt den Teilneh-mern nicht bekannt Die restlichen 10 Inselfelderwurden von Teilnehmer selbst eingereicht die da-zu die Moumlglichkeit hatten [9]

Am 1 Februar 2013 startete die Auswertung derBots und war am 15 Februar 2013 zu EndeTrotz der Zeitbegrenzung von 01 Sekunden prouumlberlebter Runde dauerte die Berechnung alsonoch zwei Wochen in denen der Testrechner 24Stunden pro Tag durchlief Im Vorfeld haumltten wirdiesen Aufwand nicht angenommen Gluumlcklicher-weise nutzten nur wenige Teilnehmer das Zeitli-mit bis zum Anschlag aus sonst waumlre der Wett-

bewerb auch nach einem Monat noch nicht zuEnde gewesen Der bdquoWorst Caseldquo eines Teilneh-mers lag bei ca vier Tagen Berechnungszeit fuumlrdie 1000 Iterationen auf den 22 Spielfeldern

Die GewinnerUm es nicht unnoumltig spannend zu machen hierdie Auswertung des Wettbewerbs

Name Punkte Dauer (in h)1 P Staudinger 3187325 6502 C Staudinger 3167576 9233 H Hettrich 3166223 25384 T Richter 3160519 44025 F Satzger 3117693 0146 P Uhlmann 3108073 1843

D Wagenfuumlhr 3080946 117147 M Maraun 3101950 1028 H Demel 3101891 89479 M Brenneis 3082350 02010 M Braun 3058158 01411 T Groszlig 3028445 115012 J Richter 3025668 223313 M Hummel amp

K Kleine2963948 5534

14 H Blobner 2926775 85515 T Pummer 2818245 10316 D Bartenstein 2788766 13117 Gym Egg 8bn 2730113 05818 Gym Egg 6bn 2711855 05619 R Knauer 2535100 01720 A Rampp 2388842 320

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 43

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 44: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

MAGAZIN

Wir gratulieren an dieser Stelle Philipp Staudin-ger Christoph Staudinger und Horst Hettrichfuumlr die Belegung der ersten drei Plaumltze Vor al-lem Platz 2 und 3 liegen sehr dicht beisammenWie man auch sieht heiszligt langes Rechnen nichtauch zwingend dass ein Bot besser ist als ande-re Ebenso spielt die verwendete Sprache keinegroszlige Rolle

Die detaillierte Auswertung mit den gemittel-ten Rundenzahlen pro Spielfeld und Teilnehmerkann separat als Open Document Tabelle (ODS)heruntergeladen werden [10] Die Log-Dateiender einzelnen Teilnehmer werden aufgrund derGroumlszlige von ca 400 MB pro Teilnehmer (unge-packt entspricht ca 50 MB gepackt) nicht zumDownload angeboten koumlnnen aber bei Interesseerfragt werden

Ebenso gibt es natuumlrlich den Quellcode aller Botszum Download (inkl Engine Inselfelder und al-ler Teilnehmer-Bots 1652KB) [11]

Noch ein paar Hinweise

1 Philipp und Christoph Staudinger haben unsversichert sich nicht gegenseitig abgespro-chen zu haben Die Bots unterscheiden sichsowohl in Sprache als auch in ihrer Strategie

2 Der Bot von MHummel und KKleine hat aufeiner Insel leider die Rekursionstiefe von Py-thon gesprengt weswegen dort keine Punkteerzielt werden konnten

3 Wettbewerbsleiter Dominik Wagenfuumlhr hat au-szliger Konkurrenz auch teilgenommen und er-haumllt deswegen keine Platzierung (Er waumlre

aber auch disqualifiziert worden weil sein Botlaumlnger als die vorgeschriebene Zeit benoumltigthat ))

Die Gewinner-Bots im DetailDa es etwas zu aufwaumlndig waumlre wenn alle Botsim Detail vorgestellt werden wuumlrden werden hiernur die drei Gewinner-Bots etwas ausfuumlhrlichervorgestellt Die Texte stammen dabei von den Ge-winnern selbst

Philipp StaudingerDie primaumlre Taktik des Bots besteht darin dieAnzahl der trockengelegten Felder zu maximie-ren Je mehr Felder trockengelegt werden destolaumlnger bleibt die Insel bestehen und desto laumlngeruumlberlebt auch der Bot

Steht der Bot auf oder neben Feldern die uumlberflu-tet sind werden zuerst diese trocken gelegt Istdies nicht der Fall wird probiert zu Feldern zugelangen von denen aus Felder trocken gelegtwerden koumlnnen Dazu werden zunaumlchst ausge-hend von der aktuellen Position rekursiv alle er-reichbaren Felder besucht Dabei wird fuumlr jedesFeld die minimal benoumltigte Schrittzahl sowie alleRichtungen (im Folgenden bevorzugte Richtun-gen genannt) die dafuumlr gegangen werden koumln-nen gespeichert

Nun wird uumlber alle Felder iteriert Jedes erreich-bare Feld bekommt eine Bewertung also eineZahl die beschreibt wie gerne der Bot zu diesemFeld gehen moumlchte Diese Bewertung zu bestim-men war der Hauptteil der Arbeit Sie haumlngt amEnde sowohl von der minimalen Schrittzahl zum

Bot als auch von der Anzahl der von diesem Feldbenachbarten gefluteten Felder ab Das Ergeb-nis wird dann zu den Gesamtbewertungen allerbevorzugten Richtungen addiert

Zusaumltzlich werden auch die sicheren Richtungenermittelt Dies sind alle Richtungen in denenes noch in dieser Runde moumlglich ist zu einemFeld zu gelangen das trocken ist und unter kei-nen Umstaumlnden bis zur naumlchsten Runde zweimaluumlberflutet werden kann Dazu muss der Auswahl-stapel im Auge behalten werden

Aus den sicheren Richtungen wird dann jene mitder houmlchsten Bewertung ausgewaumlhlt Der Botgeht in diese Richtung und das Ganze beginntvon vorne

Christoph StaudingerBei der Strategie des Bots geht es primaumlr darummoumlglichst viele Felder in jedem Zug trockenzule-gen Je mehr Felder man trockenlegen kann de-sto laumlnger uumlberlebt die Insel und damit der Botselbst

Daher werden zuerst alle ohne Bewegung er-reichbaren Felder trockengelegt (zuerst natuumlrlichdas auf dem der Bot steht) Falls dann nochZuumlge uumlbrig bleiben wird entschieden in welcheRichtung gegangen wird So wird auch sicherge-stellt dass der Bot am Ende eines Zuges nie aufeinem uumlberfluteten Feld steht Dazu werden fuumlrjede Richtung die erreichbaren Felder und ihr Ab-stand ermittelt Gezaumlhlt werden die Felder aller-dings nur wenn sie von keiner anderen Richtungschneller erreicht werden koumlnnen

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 44

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 45: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

MAGAZIN

Dann werden die Felder fuumlr jede Richtung be-wertet und die Wertungen addiert Die Feldererhalten dabei Punkte wenn sie uumlberflutet sindund Bonuspunkte fuumlr trockene oder uumlberfluteteNachbarfelder (moumlgliche Bewegungen sind im-mer gut) Diese Punkte werden vor dem Addie-ren noch mit einem mit der Entfernung exponenti-ell abfallenden Wert multipliziert um nahe Felderhoumlher zu gewichten

Falls mit dieser Methode keine eindeutig besse-re Richtung gefunden wird werden die Punktemit einer Methode mit schwaumlcher exponentiellenAbfall und zusaumltzlichen Punkten fuumlr Gebiete mitvielen gefluteten Feldern neu berechnet

Durch diese zweigeteilte Berechnung werden zu-erst nahe Gebiete trockengelegt und danach einneues Gebiet mit vielen uumlberfluteten Feldern ge-sucht um langfristig weitermachen zu koumlnnen

Horst HettrichUm viele Runden zu uumlberleben hat der Bot dasZiel so viele Felder wie moumlglich trocken zu le-gen Dazu muss das Verhaumlltnis von DRY- zu GO-Befehlen moumlglichst groszlig werden

Zunaumlchst bewertet der Bot alle Felder des Spiel-felds Der Wert jedes Feldes ergibt sich aus derAnzahl der Felder die der Bot vom entsprechen-den Feld aus trockenlegen koumlnnte Er betraumlgt al-so maximal 5

Anschlieszligend berechnet der Bot die kuumlrzestenRouten zu den 50 Feldern mit der besten Bewer-tung Die Entfernung wird mit Hilfe des Dijkstra-

Algorithmus berechnet Da der Bot pro Feldeinen Zug benoumltigt wird der Abstand zwischenzwei Feldern zunaumlchst einmal auf 1 gesetzt UmRouten zu belohnen bei denen bdquounterwegsldquo vie-le weitere Felder trockengelegt werden koumlnnenwird von diesem Abstand die 019-fache Bewer-tung des jeweiligen Feldes abgezogen sodassder Abstand je nachdem wie viele Felder vomZielfeld des Zuges aus trockengelegt werdenkoumlnnen zwischen 1 und 005 schwankt (max Be-wertung 5 siehe oben)

Bei der Suche der Route wird die Summe derWerte der Felder uumlber die der Bot bis zum FeldX gezogen ist sowie die Anzahl der Zuumlge ge-speichert Aus dem Verhaumlltnis der Punktesummeund der Anzahl der Zuumlge ergibt sich dann die ab-schlieszligende Bewertung jedes Feldes uumlber dasder Bot bei einer der ausprobierten Routen zieht

Nach dieser Prozedur zieht der Bot schlieszliglichden optimalen Weg zu dem am houmlchsten bewer-teten Feld Dabei wird bei jedem Zug uumlberpruumlftob der Bot das Feld auf dem er steht oder einumliegendes Feld trockenlegen kann

FeedbackWir freuen uns dass der Wettbewerb so gutangenommen wurde und es so viele teilweisealtbekannte Teilnehmer gab Dies motiviert unsauch im Jahr 2013 wieder einen freiesMagazin-Programmierwettbewerb zu veranstalten

Wir sind aber auch auf Ihr Feedback gespanntWas koumlnnen wir verbessern Wieso haben Siez B nicht teilgenommen obwohl Sie theoretisch

gerne gewollt haumltten Oder haben Sie eine Ideefuumlr den naumlchsten Wettbewerb Schreiben Sieuns in den Kommentaren oder per E-Mail unter

Zum Schluss wollen wir noch auf den ArtikelbdquoFoto-Kartengeneratorldquo auf Seite 34 von Teilneh-mer Florian Satzger hinweisen der fuumlr den Wett-bewerb ein Programm erstellt hat welches auto-matisch aus Fotos Inselfelder zum Testen erstellt

LINKS

[1] httpwwwfreiesmagazinde20121201-sechster-programmierwettbewerb-gestartet

[2] httpwwwfreiesmagazinde20130202-ende-des-sechsten-programmierwettbewerbs

[3] httpwwwfreiesmagazindesechster_programmierwettbewerb

[4] httpwwwborgat[5] httpsdewikipediaorgwikiAnkh_Herz_des_

Osiris[6] httpsdewikipediaorgwikiJack_Keane[7] httpwwwcliquenabenddespiele873200-

Pinguintanzhtml[8] httpmusikklarmachen-zum-aenderndefmc

2012free_music_sampler[9] httpwwwfreiesmagazinde20121223-

erweiterung-zum-programmierwettbewerb[10] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-resultsods[11] httpwwwfreiesmagazindeftp2012freiesmaga

zin-2012-12-contest-completetargz

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 45

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 46: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

LESERBRIEFE

Leserbriefe

Fuumlr Leserbriefe steht unsere E-Mailadressezur Verfuumlgung ndash wir

freuen uns uumlber Lob Kritik und Anregungen zumMagazin

An dieser Stelle moumlchten wir alle Leser ausdruumlcklichermuntern uns auch zu schreiben was nicht so gutgefaumlllt Wir bekommen sehr viel Lob (was uns natuumlr-lich freut) aber vor allem durch Kritik und neue Ideenkoumlnnen wir uns verbessern

Leserbriefe und AnmerkungenVon LATEX nach EPUB

Als erstes vielen Dank fuumlr freiesMagazin ichfinde es sehr gut dass es Euch gibt und wennich eine Idee (und noch VIEL wichtiger Zeit) ha-be werde ich ganz sicher auch etwas fuumlr Euchschreiben Es hat mich oumlfter in den Fingern ge-juckt musste aber immer realistisch sein undPrioritaumlten auf die andere Seite des Lebens set-zen

Aber das ist jetzt nicht der Grund meines Schrei-bens Ich wuumlrde mich freuen wenn Ihr mir malkurz Ideen geben koumlnntet wie latex2epub funk-tionieren kann Ich habe da noch nichts direkt fuumlrgefunden wie erledigt Ihr das Ein Weg waumlre jalatex2html fuumlr die einzelnen Kapitel und das dannweiter bearbeiten Erscheint mir aber nicht wahn-sinnig erstrebenswert Wie laumluft das in Eurem Re-daktionsalltag Tobias Luther

Zu dem Thema gab es bereits einen Arti-kel bdquoE-Book-Erstellung aus LATEX und HTMLldquo in

freiesMagazin 112012 [1] Dort haben wir dieKonvertierung von freiesMagazin nach EPUBausfuumlhrlich erklaumlrt Dominik Wagenfuumlhr

Leserreaktionen zum Resize-ArtikelMan verwende aus gutem Grund beim Verklei-

nern mit convert eine Nachschaumlrfung und eineleichte Erhoumlhung des Lokalen Kontrasts Hier se-hen die Parameter z B so aus

-quality 90 -modulate y98100 -resize 1280x1280gt -yunsharp 0x14+015+003 -yunsharp 40x20+008+003

Michael (Kommentar)

Leserreaktionen zum OpenPhonenux-ArtikelViele Dank fuumlr diesen Artikel Die ganze

Sache sieht wie ein eingekuumlrztes Nokia N900aus Etwas schlechterer Bildschirm und Auflouml-sung den internen Speicher haben sie auchganz schoumln gekuumlrzt Wann kommt die Portie-rung von Maegoo Eine Box zum Anschluss ei-ner Autobatterie wuumlrde ich noch brauchen bisdie 100 Ampere alle sind das dauert etwas Undeine Betriebsart nur uumlber Standardakkus waumlreschoumln dann kann man dass Teil in Dritte-Welt-Laumlnder verkaufen am besten mit Torverschluumlsse-lung Und warum kein HDMI-Ausgang und kein35-Klinkensteckeranschluss fuumlr den KopfhoumlrerEine Bluetooth-Tastatur und eine Anschlussboxfuumlr Drucker waumlre auch sehr schoumln Und bitte eine

schoumlne Taschenrechner-Anwendung wie mein TI89 Platinium Matthias Kuumlhmsted

Der Bildschrim wurde vom original Open-moko uumlbernommen da das Projekt zu Beginnnur als Hardware-Upgrade gedacht war Fuumlr dienaumlchste Version wird bereits mit groumlszligeren Bild-schirmen experimentiert Der interne Speicherist durch die Chip Auswahl und Technik be-schraumlnkt denn es wird ein kombinierter RAMamp NAND (interner Flashspeicher) Chip verwen-det der per Package-on-Package (PoP) direktauf den OMAP3-Prozessor geloumltet wird Und dieAuswahl an solchen Chips ndash die man dann auchnoch in kleinen Stuumlckzahlen kaufen koumlnnen mussndash ist leider nicht sehr groszlig

Es wird in der Community schon an einigen Soft-wareprojekten fuumlr die GTA04-Plattform gearbei-tet QtMoko SHR Debian Replicant (Android)Ubuntu JeOS (SuSE) und Mer Je groumlszliger dieCommunity wird desto houmlher auch die Wahr-scheinlichkeit dass jemand damit beginnt Mae-moMeego zu portieren Die Voraussetzungendafuumlr sind alle erfuumlllt

Eine Autobatterie sollte entweder per USB (direktoder mit Y-Kabel) oder auch direkt an den Akku-Klemmen anschlieszligbar sein ndash die entsprechendeLogik zur Spannungs- und Stromwandlung vor-ausgesetzt (was dank dem Open-Hardware Prin-zip aber machbar ist) Ich denke das waumlre einschoumlnes Projekt fuumlr einen Hardware-Bastler Du

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 46

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 47: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

LESERBRIEFE

koumlnntest die Idee ja mal auf der OpenPhoenux-Community-Mailingliste [2] vorschlagen Viel-leicht findet sich jemand der es entwickeln willAuch eine Stromversorgung uumlber Standardakkusist prinzipiell moumlglich Passt man die 3-D-Datendes Gehaumluses entsprechend an so koumlnnen die-se auch noch schoumln im Geraumlt untergebracht wer-den Den Prototypen des OpenPhoenux-Tabletsgibt es uumlbrigens schon in einer Variante mit Stan-dardakkus

[Der Verkauf in Dritte-Welt-Laumlnder] wuumlrde wohlleider am recht hohen Preis scheitern Darankann man dann erst denken wenn das Handy in

so hohen Stuumlckzahlen produziert werden kanndass der Preis weit genug gesenkt werden kann

HDMI und 35mm-Klinke sind in der aktuellenVariante nicht enthalten da diese in die altenOpenmoko-Gehaumluse passen muumlssten und dortkeine Loumlcher fuumlr solche Anschluumlsse vorgesehensind Technisch ist dies allerdings kein Problemund es ist fuumlr die naumlchste Version auch schonangedacht Ein Drucker laumlsst sich problemlosuumlber den USB-20-OTG-Port anschlieszligen undbenutzen Und eine Taschenrechner-Applikationist nur eine Frage der Motivation eines Software-Entwicklers ndash oder gibt es vielleicht sogar schon

etwas passendes im Debian-RepositoryLukas Maumlrdian

LINKS[1] httpwwwfreiesmagazindefreiesMagazin-2012-

11[2] httplistsopenphoenuxorgmailmanlistinfo

community

Die Redaktion behaumllt sich vor Leserbriefe gegebe-nenfalls zu kuumlrzen Redaktionelle Ergaumlnzungen fin-den sich in eckigen Klammern

Die Leserbriefe kommentieren

bdquoLegoldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom659

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 47

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 48: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkCeBIT Hannover 0503ndash09032013 40 EUR httpwwwcebitdeChemnitzer Linux-Tage Chemnitz 1603ndash17032013 8 EUR httpchemnitzerlinux-tagedeAugsburger Linux-Infotag Augsburg 23032013 frei httpwwwlugadeEasterhegg Paderborn 2903ndash01042013 ndash httpwwweasterheggeuEdu Days Krems 0304ndash04042013 frei httpwwwedudaysatGrazer Linuxtage Graz 20042013 frei httpwwwlinuxtageatLinuxwochen Wien Wien 0205ndash02052013 frei httplinuxwochenatLUG Camp Wuppertal 0905ndash12052013 55 EUR httpwwwlugcamporgLinuxTag Berlin 2205ndash22052013 20 EUR httpwwwlinuxtagorg

(Alle Angaben ohne Gewaumlhr)

Sie kennen eine Linux-Messe welche noch nicht auf der Liste zu finden ist Dann schreiben Sie eine E-Mail mit den Informationen zu Datum und Ort an

VorschaufreiesMagazin erscheint immer am ersten Sonntag eines Monats Die April-Ausgabe wird voraussichtlich am 7 April unter anderem mit folgenden Themenveroumlffentlicht

Nur keine Angst Effektives Arbeiten mit der Shell Review Software-Architekturen dokumentieren und kommunizieren

Es kann leider vorkommen dass wir aus internen Gruumlnden angekuumlndigte Artikel verschieben muumlssen Wir bitten dafuumlr um Verstaumlndnis

KonventionenAn einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung Diese sind hier zusammengefasst$ Shell-Prompt Prompt einer Root-Shell ndash Ubuntu-Nutzer koumlnnen hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzeny Kennzeichnet einen aus satztechnischen Gruumlnden eingefuumlgten Zeilenumbruch der nicht eingegeben werden soll~ Abkuumlrzung fuumlr das eigene Benutzerverzeichnis homeBENUTZERNAME

Kennzeichnet einen Link der auf eine englischsprachige Seite fuumlhrt Oumlffnet eine houmlher aufgeloumlste Version der Abbildung in einem Browserfenster

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 48

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum
Page 49: Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie Dungeons of Dredmor, Osmos, World of Goo, Aquaria oder Bastion, wie der eine oder andere

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF EPUB und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 3Markus Brenneis S 15Dirk Deimeke S 41Holger Dinkel S 30Jens Doumlrpinghaus S 23Dominik Honnef S 39Mathias Menzer S 12Florian Satzger S 34Daniel Stender S 18Dominik Wagenfuumlhr S 27

ISSN 1867-7991Erscheinungsdatum 3 Maumlrz 2013

RedaktionMatthias Sitte Sujeevan VijayakumaranDominik Wagenfuumlhr (Verantwortlicher Redakteur)

Satz und LayoutHolger Dinkel Dominik FreyTobias Kempfer Stefan Wiehler

KorrekturDaniel Braun Frank BrungraumlberVicki Ebeling Stefan FangmeierMathias Menzer Christian SchnellKarsten Schuldt Toni Zimmer

VeranstaltungenRonny Fischer

Logo-DesignArne Weinberg (CC-BY-SA 30 Unported)

Dieses Magazin wurde mit LATEX erstellt Mit vollem Namen gekennzeichnete Beitraumlge geben nicht notwendigerweise die Meinung der Redaktion wieder Wenn Sie freiesMagazin ausdrucken moumlchten dann denken Sie bitte

an die Umwelt und drucken Sie nur im Notfall Die Baumlume werden es Ihnen danken -)

Soweit nicht anders angegeben stehen alle Artikel Beitraumlge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 30 Unported Das Copyright liegt beim jeweiligen Autor freiesMagazin unterliegt als

Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 30 Unported mit Ausnahme der Inhalte die unter einer anderen Lizenz hierin veroumlffentlicht werden Das Copyright liegt bei Dominik Wagenfuumlhr Es wird erlaubt

das Werkdie Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren zu verteilen undoder zu modifizieren Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 25 Generic

Das Copyright liegt bei Randall Munroe

copy freiesMagazin CC-BY-SA 30 Ausgabe 032013 49

  • Editorial
  • Linux allgemein
    • Fedora 18
    • Der Februar im Kernelruumlckblick
      • Anleitungen
        • Firefox-Erweiterungen mit dem Add-on-SDK erstellen ndash Teil II
        • Einfuumlhrung in Docbook
        • Eine kurze Einfuumlhrung in Hadoop
        • Laufzeitanalyse mit gprof
          • Software
            • Subsurface ndash Tauchen unter Linux
            • Foto-Kartengenerator
              • Community
                • Rezension PC-Netzwerke Das umfassende Handbuch (6 Auflage)
                • Rezension Die Kunst des Vertrauens
                  • Magazin
                    • Die Gewinner des sechsten Programmierwettbewerbs
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Vorschau
                    • Konventionen
                    • Impressum