Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie...
Transcript of Topthemen dieser Ausgabeoder gar 75% Rabatt. Dabei vertreten waren nicht nur Indie-Titel wie...
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-