48
freies Magazin April 2012 Topthemen dieser Ausgabe Python – Teil 12: Reguläre Ausdrücke Seite 9 Nachdem im letzten Teil dieser Reihe ein kleiner Twitter-Client besprochen wurde, wird es nun wieder etwas theoretischer: Anhand einiger einfacher Beispiele sollen Reguläre Ausdrücke vorgestellt werden. (weiterlesen) Dokumentenmanagement mit LetoDMS Seite 22 Dokumentenspeicherung, -austausch und -archivierung bleibt ein vorherrschendes Thema in der IT. Die Spanne der Möglichkeiten reicht von einer gemeinsam genutzten Festplatte bis zu ausgewachsenen Dokumenten-Management-Systemen (DMS), die eine rechtskonforme Abla- ge von Dokumenten ermöglichen. Irgendwo in dieser Spanne findet man LetoDMS, dessen Historie bis 2002 zurück reicht. (weiterlesen) DANTE-Tagung 2012 in Leipzig Seite 32 Die diesjährige Frühjahrstagung des DANTE e.V. (Deutschsprachige Anwendervereinigung T E X e.V.) fand zwar etwas abgelegen in Leipzig statt, dennoch war das Programm eine Reise wert. Drei Tage lang wurden Vorträge und Workshops gehalten und die Neuigkeiten im T E X-Umfeld aufgezeigt. (weiterlesen) © freiesMagazin CC-BY-SA 3.0 Ausgabe 04/2012 ISSN 1867-7991

freiesMagazin 04/2012 · für Fujitsus Amilo-Serie und der Erkennung des Betriebsmodus für Tablet-PCs des gleichen Her-stellers mehr interessante Funktionen mit. Insgesamt dauerte

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

freiesMagazin April 2012

Topthemen dieser Ausgabe

Python ndash Teil 12 Regulaumlre Ausdruumlcke Seite 9Nachdem im letzten Teil dieser Reihe ein kleiner Twitter-Client besprochen wurde wird es nun wieder etwastheoretischer Anhand einiger einfacher Beispiele sollen Regulaumlre Ausdruumlcke vorgestellt werden (weiterlesen)

Dokumentenmanagement mit LetoDMS Seite 22Dokumentenspeicherung -austausch und -archivierung bleibt ein vorherrschendes Thema inder IT Die Spanne der Moumlglichkeiten reicht von einer gemeinsam genutzten Festplatte bis zuausgewachsenen Dokumenten-Management-Systemen (DMS) die eine rechtskonforme Abla-ge von Dokumenten ermoumlglichen Irgendwo in dieser Spanne findet man LetoDMS dessenHistorie bis 2002 zuruumlck reicht (weiterlesen)

DANTE-Tagung 2012 in Leipzig Seite 32

Die diesjaumlhrige Fruumlhjahrstagung des DANTE eV (Deutschsprachige Anwendervereinigung TEXeV) fand zwar etwas abgelegen in Leipzig statt dennoch war das Programm eine Reise wertDrei Tage lang wurden Vortraumlge und Workshops gehalten und die Neuigkeiten im TEX-Umfeldaufgezeigt (weiterlesen)

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

MAGAZIN

Editorial

Neues zum fuumlnfen Programmierwett-bewerbEin Leser merkte (in einem privaten Gespraumlch)an dass das Thema zum fuumlnften freiesMagazin-Programmierwettbwerb [1] merkwuumlrdig gewaumlhltsei da es Wortwolken-Generatoren wie Sandam Meer gibt Wie beim Start des Wettbewerbsmitgeteilt haben wir nur einen einzigen freienStandalone-Generator gefunden Sicherlich hatjedes Content Management System (CMS) inklder freien Exemplare einen Wortwolkengeneratorfuumlr Tags Hiermit einen externen Text zu analysie-ren wird den meisten Nutzern aber schwer fallen

Daher zur Klarstellung Der Wettbewerb solldafuumlr sorgen dass es mehr freie Wortwolken-Generatoren gibt die fuumlr beliebige Texte einge-setzt werden koumlnnen (die in einem Textformatvorliegen) Und das Woumlrtchen bdquomehrldquo ist dabeinoch uumlbertrieben da uns wie gesagt nur ein ein-ziger bekannt ist

Zum weiteren Ablauf des Wettbewerbs sei ge-sagt dass nach Ablauf der Abgabefrist am15 April 2012 jedes Programm ausgiebig ge-testet wird Danach wird eine Bewertungsmatrixerstellt und jeder Teilnehmer erhaumllt seinen Be-wertungsbogen vorab zur Draufsicht Er kanndann dazu Stellung nehmen und ggf eine Kor-rektur anbringen wo wir im Test einfach nur nichtden bdquorichtigenldquo Knopf gefunden haben um eineFunktion zu aktivieren Eine Nachbesserung desProgrammes ist dann aber nicht mehr moumlglich

Gegen Ende April werden die Gewinner dannmitgeteilt und voraussichtlich in freiesMagazin052012 vorgestellt

Einige Fragen der Teilnehmer sind auch ein-getroffen und koumlnnen in den Leserbriefen aufSeite 44 nachgelesen werden

EPUB-AbschlussMit der Aprilausgabe von freiesMagazin verlaumlsstdie EPUB-Ausgabe auch offiziell die BetaphaseEs gibt ndash auszliger positivem Feedback ndash kaum nochKlagen dass etwas mit der Version nicht stimmtsodass wir sie regulaumlr unterstuumltzen wollen

Die Downloadzahlen der letzten Monate liegenbei rund 2400 (Januar) 1800 (Februar) und 1600(Maumlrz) Die Tendenz ist fallend insgesamt den-ken wir aber dass die Resonanz ziemlich gut istschlieszliglich besitzt nicht jeder Haushalt ein mobi-les Geraumlt mit EPUB-Unterstuumltzung bzw wollenmanche freiesMagazin auch gar nicht mobil le-sen

Wir bedanken uns daher bei allen freiesMagazin-Lesern fuumlr die Unterstuumltzung und wuumlnschen vielSpaszlig mit der neuen Ausgabe

Ihre freiesMagazin-RedaktionLINKS

[1] httpwwwfreiesmagazindefuenfter_programmierwettbewerb

Das Editorial kommentieren

Inhalt

Linux allgemeinDer Maumlrz im Kernelruumlckblick S 3

AnleitungenObjektorientierte Programmierung Teil 2 ndashDie richtige Strategie

S 5

Python ndash Teil 12 Regulaumlre Ausdruumlcke S 9Perl-Tutorium ndash Teil 6 Objekte der altenSchule

S 14

Selenium meets Java S 18

SoftwareDokumentenmanagement mit LetoDMS S 22Fish Fillets ndash Next Generation S 28

CommunityDANTE-Tagung 2012 in Leipzig S 32Rezension jQuery Novice to Ninja S 38Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung

S 40

Rezension Linux Das umfassende Hand-buch (5 Auflage)

S 42

MagazinEditorial S 2Leserbriefe S 44Veranstaltungen S 47Konventionen S 47Impressum S 48

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 2

KERNEL

Der Maumlrz 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

Entwicklung von Linux 33Der Entwicklungszyklus von Linux 33 lief ruhigaus Sowohl -rc6 [1] als auch -rc7 [2] konntenwieder in einem Sieben-Tage-Rhythmus veroumlf-fentlicht werden bdquoEigentlichldquo sollte es die sieb-te Entwicklerversion ja nicht mehr geben dadie sechste nur kleinere Korrekturen mitbrach-te Doch war das Gesamtvolumen der Aumlnderun-gen groszlig genug dass Torvalds noch keine Fi-nalversion daraus machen wollte Die kam dannanstelle des -rc8 [3] fiel zwar noch kleiner alsdie beiden letzten Vorabversionen aus brachteaber mit Aumlnderungen der Standardkonfigurationder ARM-basierten TILE-Architektur Unterstuumlt-zung der An-Abschaltung von Funkschnittstellenfuumlr Fujitsus Amilo-Serie und der Erkennung desBetriebsmodus fuumlr Tablet-PCs des gleichen Her-stellers mehr interessante Funktionen mit

Insgesamt dauerte die Entwicklung von Linux 33mit 75 Tagen etwas laumlnger als die des Vorgaumln-gers an die uumlber 90 Tage des unter dem Ein-bruch bei kernelorg leidenden 31 reicht die Zeitzum Gluumlck jedoch nicht heran

Uumlberblick uumlber Linux 33Fast zwei Jahre nach dem Rausschmiss (sie-he bdquoDer Maumlrz im Kernelruumlckblickldquo freiesMagazin042010 [4]) finden sich wieder Komponen-ten von Googles Smartphone-BetriebssystemAndroid im Linux-Kernel wieder Die erstenPatches wurden in Kroah-Hartmans Staging-Zweig aufgenommen und signalisieren da-mit die Annaumlherung der Entwicklerkreise umLinux- und Android-Kernel Die bisher aufge-nommenen Komponenten sind bdquoBinderldquo dasInterprozess-Kommunikations-Tool von Androiddas Logging-System bdquoLoggerldquo und das WerkzeugbdquoTimed GPIOldquo das zeitverzoumlgert auszufuumlhrendeEin-Ausgabe-Kommandos ermoumlglicht

Auch speicherspezifische Android-Erweiterungenwurden zuruumlckportiert darunter der bdquoLow Memo-ry Killerldquo der in einer Umgebung benoumltigt wirdin der Anwendungen nicht vom Nutzer been-det werden sondern vom Kernel sobald derArbeitsspeicher knapp wird

Ebenfalls in die Systemtiefen geht die Unterstuumlt-zung fuumlr EFI (Extensible Firmware Interface [5])das nach Einschalten eines Rechners fuumlr dasStarten des Betriebssystemkerns oder einesBootloaders genutzt wird Linux kann nun direktvon EFI gestartet werden ein Bootloader ist theo-retisch nicht mehr notwendig

Einer der Top-Kandidaten fuumlr funktionale Erwei-terungen in den vergangenen Linux-Versionenwar das Dateisystem Btrfs das waumlhrend des

Entwicklungszyklus von Linux 2629 in den Ker-nel aufgenommen wurde Diesmal wurde einebdquoBalanceldquo-Funktion verbessert die bislang gleich-bedeutend mit dem Neuschreiben des Dateisys-tems war Dies kann notwendig sein wenn ei-nem RAID eine Platte hinzugefuumlgt wird Aller-dings kann das lange Zeit dauern die Uumlberarbei-tung ermoumlglicht nun das Pausieren der Operati-on und erlaubt zudem auch noch die Aumlnderungdes RAID-Levels [6] Entwickler kommen nun inden Genuss eines neuen Werkzeugs zur Fehler-suche bei Btrfs bdquoIntegrity Checkldquo soll bei Schreib-vorgaumlngen zusaumltzliche Integritaumltstest durchfuumlh-ren und so das Auffinden von Fehlern beschleu-nigen Auch ext4 wurde bedacht dort wurde dieFunktion zum Aumlndern der Groumlszlige eines laufendenDateisystem verbessert Dies wird nun vollstaumln-dig durch den Kernel durchgefuumlhrt und geschiehtdadurch erheblich schneller

Einen erheblichen Anteil am neuen Kernel habennetzwerknahe Themen So wurde nun bdquoOpenvSwitchldquo aufgenommen der die Umsetzungeines virtuellen Switches darstellt Netzwerk-Switches [7] im Heimbereich meist in denBreitband-Router integriert stellen angeschlos-senen Geraumlten eine Netzwerkverbindung zur Ver-fuumlgung indem sie Netzwerkpakete direkt zwi-schen zwei kommunizierenden Geraumlten vermit-teln

Open vSwitch unterstuumltzt viele von modernenHardware-Switches gewohnte Funktionen wie

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 3

KERNEL

VLANs (virtuell getrennte Subnetze) Quality ofService (Bandbreitensteuerung) Spanning TreeProtocol (STP eine Funktion zur Feststellungund Vermeidung von Schleifen im Netzwerk)und Bonding (Zusammenfassung mehrerer Netz-werkschnittstellen) und ermoumlglicht damit die rea-litaumltsnahe Anbindung virtueller Maschinen an einebenso virtuelles Netzwerk Apropos BondingAbseits virtueller Netzwerke bietet bdquoTeamingldquo nuneine weitere Moumlglichkeit mehrere physikalischeNetzwerkschnittstellen zu einer virtuellen zusam-menzufassen Im Gegensatz zu den schon laumln-ger verfuumlgbaren bdquoBondingldquo-Geraumlten lassen sichTeaming-Geraumlte im Kontext des Anwenders be-treiben

Entlastung fuumlr Systeme die mit Engpaumlssen desArbeitsspeichers zu kaumlmpfen haben versprichteine Funktion die den vom Netzwerk-Stack ge-nutzten Speicher begrenzt Auch ist es nun moumlg-lich den Netzwerkverkehr je nach Anwendungzu priorisieren was vor allem auf Servern vonInteresse sein duumlrfte Mit bdquoByte Queue Limitsldquosoll gegen Verzoumlgerungen von Netzwerkkommu-nikation vorgegangen werden die auf dem Zwi-schenpuffern von Netzwerkpaketen an den ein-zelnen Zwischenstationen der Kommunikations-strecke beruhen Die Groumlszlige der Puffer kann nunbegrenzt werden womit sich eine Moumlglichkeitzum Tuning der Einstellungen an Netzwerkgerauml-ten ergibt

Eine vollstaumlndige Auflistung aller Neuerungenund Treiber des neuen Linux-Kernels liefert dieenglischsprachige Seite Kernelnewbies [8]

Ausblick auf Linux 34Die Arbeiten an den Android-Treibern dauernan Ein paar Aumlnderungen wurden auch schon inden staging-Zweig uumlbernommen darunter haupt-saumlchlich Korrekturen [9] Auch fuumlr den freienNVIDIA-Grafiktreiber Nouveau zeichnet sich ei-ne Aumlnderung ab Der Hauptentwickler Dave Air-lie betrachtet das ABI die Schnittstelle uumlber dieAnwendungen auf den Treiber zugreifen koumln-nen mittlerweile als stabil Er hat darum gebe-ten dass Nouveau in Linux 34 entsprechendals stabiler Treiber gefuumlhrt wird nachdem er be-reits schon laumlnger von verschiedenen Distribu-tionen verwendet wird [10] In der gleichen E-Mail verkuumlndete Airlie auch die Unterstuumltzung fuumlrNVIDIAs neueste Chip-Generation Kepler [11]die vor allem Ben Skeggs zu verdanken ist

Unterstuumltzung fuumlr 2632Der betagte Kernel 2632 sollte eigentlich nach263258 nicht weiter mit Aktualisierungen ver-sorgt werden Dabei wurde diese Version sehrlange unterstuumltzt da sich schon sehr fruumlhdie Kernel-Entwickler die bei den verschiede-nen Distributoren auf den Gehaltslisten stan-den auf 2632 als Basis fuumlr ihre Unternehmens-Distributionen geeinigt hatten Da allerdings diegroszligen Spieler bereits auf Folgeversionen auf-gesprungen sind laumlsst Greg Kroah-Hartman dieUnterstuumltzung nun fallen und widmet sich nunder LTSI-Initiative der Linux Foundation [12] diedie Bereitstellung und Pflege von Kernelversio-nen uumlber lange Zeitraumlume hinweg zum Ziel hatDie Pflege des 2632 uumlbernimmt nun Willy Tar-

reau der Patches jedoch nur in laumlngeren Inter-vallen bereitstellen wird [13]

LINKS

[1] httpslkmlorglkml201233139[2] httpslkmlorglkml2012310158[3] httpslkmlorglkml2012318132[4] httpwwwfreiesmagazindefreiesMagazin-2010-

04[5] httpsdewikipediaorgwikiExtensible_

Firmware_Interface[6] httpsdewikipediaorgwikiRAID[7] httpsdewikipediaorgwikiSwitch_(Computer

technik)[8] httpkernelnewbiesorgLinux_33[9] httpwwwgolemdenewslinux-weitere-android-

patches-fuer-kernel-3-4-1203-90394html[10] httpwwwpro-linuxdenews118186nouveau-

treiber-verlaesst-experimentelles-stadiumhtml[11] httpsdewikipediaorgwikiNvidia-Geforce-600-

Serie[12] httpltsilinuxfoundationorg[13] httpwwwpro-linuxdenews118115linux-2632-

geht-in-die-verlaengerte-wartungsphasehtml

Autoreninformation

Mathias Menzer (Webseite) haumllteinen Blick auf die Entwicklung desLinux-Kernels und erfaumlhrt fruumlhzeitigDetails uumlber interessante Funktionen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 4

PROGRAMMIERUNG

Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie von Dominik Wagenfuumlhr

D er Begriff der objektorientierten Pro-grammierung (kurz OOP [1]) existiertschon eine ganze Weile Wer zuvor

prozedural programmiert hat erwischt sichbeim Uumlbergang zu OOP oumlfter dabei wie er diefruumlheren Funktionen einfach mit einer Klas-se umgibt und dies als objektorientierte Pro-grammierung verkauft Die Artikelreihe sollan einem einfachen Beispiel zeigen was manin so einem Fall besser machen koumlnnte

Hinweis Bevor man im Artikel fortfaumlhrt sollteman sich den vorherigen Teil der Reihe durchge-lesen haben (siehe bdquoObjektorientierte Program-mierung Teil 1ldquo freiesMagazin 032012 [2])

Die Wahl der richtigen StrategieEin sehr beliebtes und bekanntes Entwurfsmus-ter ist das Strategie-Muster [3] Es dient vorran-gig dazu verschiedene Verhalten als Klassenumzusetzen die von einer Basisklasse abgelei-tet sind bdquoAuszligenldquo nutzt man dann nur diese Basis-klasse die konkreten Strategien sind dem Nutzerunbekannt Zusaumltzlich ist es moumlglich zur Laufzeiteiner Klasse ein neues Verhalteneine neue Stra-tegie zu geben

Dies wurde ansatzweise auch schon in der letz-ten Umsetzung gemacht bei der jeder konkre-te Bot von einer Basisklasse BaseBot abgeleitetwar Ein groszliger Unterschied besteht aber darindass es damals kein Verhalten war dass man er-stellt hat sondern einen bestimmten Typ

DesignDas Strategie-Entwurfsmuster wird eins zu einsumgesetzt wie es von der bdquoGang of Fourldquo vorlanger Zeit definiert wurde Da die Basisklasse al-ler konkreten Strategien keinerlei Logik umfasstwird ein Interface [4] IStrategy benutzt

Der Bot enthaumllt dann dieses Interface als Strate-gie Hierfuumlr wurde eine Aggregation [5] gewaumlhltweil die Strategie auch ohne Bot existieren kann(und wird) da sie von Game erzeugt wird DerBot uumlbernimmt dann nur noch dessen Zerstoumlrungbeim Beenden

KlassenaufteilungKlasse IStrategyBenoumltigt -Verantwort Interface fuumlr die konkreten Stra-

tegien um ein Angebot anzuneh-men oder abzulehnen

Klasse AcceptStrategyBasisklasse IStrategyBenoumltigt -Verantwort nimmt ein Angebot immer an

Klasse DeclineStrategyBasisklasse IStrategyBenoumltigt -Verantwort lehnt ein Angebot immer ab

Klasse VariableStrategyBasisklasse IStrategyBenoumltigt -

Verantwort entscheidet variabel ob ein Ange-bot abgelehnt oder angenommenwird

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die angenommenen Punkte

Klasse GameBenoumltigt Bot VariableStrategy IStra

tegy AcceptStrategy DeclineStrategy

Verantwort erstellt den Bot und die richtigeStrategie dazu liest Benutzerein-gabe und fragt Bot nach Annah-me oder Ablehnung

AbhaumlngigkeitenDas Interface IStrategy und die konkreten Stra-tegien haben keine Abhaumlngigkeiten

Der Bot ist nur vom Interface IStrategy abhaumln-gig nicht aber von den konkreten Strategien

Da die Klasse Game die konkreten Strategien er-stellen muss haumlngt es von diesen auch ab Zu-saumltzlich erstellt sie auch den Bot und gibt dessenPunkte am Ende aus

Vor- und NachteileDas Design der Klasse Bot aumlhnelt sehr starkdem ersten Ansatz im ersten Teil Der groszlige Un-terschied ist dass die Strategie durch ein echtesObjekt und nicht nur durch einen String reprauml-sentiert werden muss Der Vorteil ist nun dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 5

PROGRAMMIERUNG

Das Strategie-Muster in der Umsetzung

der Bot dank des Strategie-Musters die konkre-ten Strategien nicht kennen muss und voumlllig los-geloumlst davon arbeiten kann Mit diesem Designhat man das Design-Prinzip bdquoProgrammiere ge-gen Schnittstellen nicht gegen Implementierun-genldquo umgesetzt

Auch hat der Bot nunwirklich nur eine Auf-gabe naumlmlich Punktezaumlhlen Die Entschei-dung ob ein Angebotangenommen oder ab-gelehnt wird muss erselbst nicht mehr tref-fen dies uumlbernimmt sei-ne gesetzte Strategie

Das Strategie-Musterhat auch den Vorteildass zusaumltzliche ganzandere Verhaltenswei-sen des Bots leicht er-gaumlnzt werden koumlnnenHaumltte der Bot zwei wei-tere Verhaltensartendie es in jeweils drei un-terschiedlichen Ausprauml-gungen gibt erweitertman die Klasse Bot umzwei Interfaces und fuumlgtinsgesamt acht neueKlassen (pro Verhaltenein Interface und dreiRealisierungen) hinzu

Der Nachteil der Erweiterbarkeit bleibt aber nachwie vor Es ist zwar extrem leicht eine neueStrategie zu realisieren und diese dem Bot un-terzuschieben aber dennoch muss die KlasseGame alle konkreten Strategien kennen Wird ei-ne neue Strategie hinzugefuumlgt muss auch Game

angepasst werden Das ist also immer noch nichtdie ultimative Loumlsung

ImplementierungDie C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop3-beispieltargz

Die Erschaffung einer StrategieEin Nachteil der obigen Umsetzung ist dass dieKlasse Game von allen konkreten Strategien ab-haumlngt weil sie diese erstellen muss Diese Auf-gabe soll nun an eine Klasse uumlbergeben werdenderen einzige Aufgabe die Erstellung von Stra-tegien sein soll Hierfuumlr bedient man sich desFabrik-Musters (Factory-Pattern)

Von diesem Pattern gibt es drei Auspraumlgungenzum einen die Fabrik-Methode [6] dann die Ab-strakte Fabrik [7] und die Einfache Fabrik [8] Fuumlrdie Anwendung hier soll eine Einfache Fabrik ge-nutzt werden

DesignDie Umsetzung des Einfache-Fabrik-Musters istrecht simpel Das was vorher die Klasse Gamein der Methode start erledigt wird in einestatische Methode create der neuen KlasseStrategyFactory ausgelagert Game nutzt danndiese neue Klasse

Man haumltte auch auf die statische Methode ver-zichten und in der Methode start der Klas-se Game jedes Mal eine neue Instanz vonStrategyFactory erstellen koumlnnen Auch haumlt-te die Fabrik als Attribut von Game umgesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 6

PROGRAMMIERUNG

Die Einfache Fabrik erzeugt verschiedene Strategien

werden koumlnnen Es gibt keineGruumlnde dies nicht auch so zutun

KlassenaufteilungAn den CRC-Karten fuumlr die Stra-tegien hat sich nichts geaumlndertsodass diese hier nicht noch ein-mal dargestellt werden sollen

Klasse StrategyFactoryBenoumltigt IStrategy

VariableStrategyAcceptStrategyDeclineStrategy

Verantwort erstellt die richti-ge Strategie (jenach Konsolenpa-rameter)

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die ange-

nommenen Punk-te

Klasse GameBenoumltigt StrategyFactory

BotVerantwort erstellt den Bot

und setzt die vonder Fabrik erzeug-te Strategie liest Benutzereinga-be fragt Bot nach Annahme oderAblehnung

AbhaumlngigkeitenDie Klasse StrategyFactory ist von allen kon-kreten Strategien abhaumlngig da sie diese erzeugt

Durch diese Abstraktion ist die Ab-haumlngigkeit von Game zu den Strate-gien aber verschwunden

Vor- und NachteileWas ist der Vorteil der FabrikDie Klasse Game ist nun viel un-abhaumlngiger Egal ob neue Strate-gien hinzugefuumlgt werden oder al-te sich aumlndern die Klasse Gameund somit die Bibliothek libgamemuss nicht neu erstellt werdenDer Code ist also gut gekapseltund laumlsst sich so einfach erweiternund warten Mit diesem Designhat man das Design-Prinzip bdquoKap-sele was sich veraumlndertldquo gut um-gesetzt

Dennoch ist es eher schlechtdass die StrategyFactory je-des Mal angepasst werden musswenn eine neue Strategie hinzuge-fuumlgt wird Das laumlsst sich also nochverbessern

ImplementierungJe nach Sprache kann man dieEinfache Fabrik auf verschiede-ne Arten umsetzen Selbst in C++kann man den Code auf vieleverschiedene Weisen erstellen Inder Beispielimplementierung wur-

de sich fuumlr eine einfache Loumlsung entschiedenbei der die drei konkreten Strategien in einem as-soziativen Array gespeichert werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 7

PROGRAMMIERUNG

Diese Loumlsung entspricht in etwa auchdem Endprodukt beim freiesMagazin-Programmierwettbewerb [9] Sie hatte den Vor-teil dass Teilnehmer die StrategyFactory nuran zwei Stellen anpassen mussten Zum einenmusste das assoziative Array erweitert wer-den zum anderen musste natuumlrlich die neueStrategie-Header-Datei inkludiert werden

Die C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop4-beispieltargz

AusblickDerzeit nutzt die Klasse Game die statischen Ope-rationen der StrategyFactory Im naumlchsten Teil

lernt man ein Muster kennen welches diesesKonzept etwas verbessert

LINKS

[1] httpssecurewikimediaorgwikipediadewikiObjektorientierte_Programmierung

[2] httpwwwfreiesmagazindefreiesMagazin-2012-03

[3] httpsdewikipediaorgwikiStrategie_(Entwurfsmuster)

[4] httpsdewikipediaorgwikiSchnittstelle_(Programmierung)

[5] httpsdewikipediaorgwikiAssoziation_(UML)Aggregation

[6] httpsdewikipediaorgwikiFabrikmethode

[7] httpsdewikipediaorgwikiAbstrakte_Fabrik[8] httpwwwoodesigncomfactory-patternhtml[9] httpwwwfreiesmagazinde20111001-vierter-

freiesmagazin-programmierwettbewerb-gestartet

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istC++-Software-Entwickler und hattaumlglich mit Software-Design zu tun

Diesen Artikel kommentieren

bdquoQwertial Aphasialdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom604

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 8

PROGRAMMIERUNG

Python ndash Teil 12 Regulaumlre Ausdruumlcke von Daniel Noumlgel

N achdem im letzten Teil (siehe bdquoPy-thon ndash Teil 11 Zwitschern in Schwarz-Weiszligldquo freiesMagazin 022012 [1]) die-

ser Reihe ein kleiner Twitter-Client bespro-chen wurde wird es nun wieder etwas theo-retischer Anhand einiger einfacher Beispie-le sollen Regulaumlre Ausdruumlcke vorgestellt wer-den

Wie man eine Zeichenkette beschreibtWer sich bereits ein wenig mit Programmierungbeschaumlftigt hat wird mit groszliger Wahrscheinlich-keit schon einmal Regulaumlren Ausdruumlcken begeg-net sein Auf den ersten Blick wirken die Aus-druumlcke haumlufig recht kryptisch und abschreckendDabei ist nur wenig Aufwand noumltig um sich zu-mindest einige Grundlagen anzueignen

Regulaumlre Ausdruumlcke sind ndash vereinfacht gesagt ndashBeschreibungen von Zeichenketten Wer Regulauml-re Ausdruumlcke verwendet moumlchte also eine mehroder weniger definierte Zeichenkette finden bzwuumlberpruumlfen In Python lassen sich Regulaumlre Aus-druumlcke uumlber das Modul re anbinden [2]

Ein haumlufiges Beispiel ist das Auslesen einer IP-Adresse von einer Seite So bietet DynDNSorgeinen Service an der die derzeitige externeIP-Adresse eines Besuchers anzeigt [3] Dochwie liest man diese Adresse automatisiert ausHaumlufig reichen Methoden wie strfind() oderstrsplit() nicht aus um derartige Problemezu loumlsen Mit Regulaumlren Ausdruumlcken kann die ge-

suchte Zeichenkette beschrieben werden ohnegenaueres Wissen uumlber das bdquoUmfeldldquo zu benoumlti-gen

Im Fall von IPv4-Adressen wird eine Zeichenket-te gesucht die in der Regel aus vier Bloumlcken mitjeweils ein bis drei Ziffern besteht ndash getrennt vonPunkten Ein vereinfachter Regulaumlrer Ausdruckkoumlnnte diese Zeichenkette wie folgt beschreiben

[0-9]13[0-9]13[0-9]13[0-9]13

Vereinfacht ist dieser Ausdruck deshalb weil erauch Adressen wie 999999999999 akzeptie-ren wuumlrde was aber keine guumlltige IP-Adresseist Im Netz finden sich Beispiele fuumlr RegulaumlreAusdruumlcke die diesen Umstand beruumlcksichtigenndash lesbarer werden die Regulaumlren Ausdruumlcke da-durch allerdings nicht [4]

ZeichenkundeIn Regulaumlren Ausdruumlcken haben viele Zeichen ei-ne besondere Bedeutung ndash etwa die eckigen undgeschweiften Klammern oder auch der PunktDie grundlegenden Zeichen sollen im Folgendenkurz vorgestellt werden

Eckige Klammern []Eckige Klammern definieren in Regulaumlren Aus-druumlcken sogenannte Sets In den Klammernkann also ein Set von Zeichen definiert werdenauf die der Regulaumlre Ausdruck passen soll Wennetwa die Vokale a e i o und u in das Set aufge-

nommen werden sollen wuumlrde das Set so ausse-hen [aeiou] Im obigen Beispiel wird mit Hilfedes Minus-Zeichens ein sogenannter Bereich de-finiert [0-9] trifft also auf Zahlen von 0 bis 9 zuEs koumlnnen auch Bereiche uumlber Buchstaben gebil-det werden so trifft [a-z] auf die kleinen Buch-staben von a bis z zu Wichtig dabei Das Setdefiniert zunaumlchst nur welche Zeichen prinzipiell

gesucht sind Uumlber die Rei-henfolge und Anzahl wirdkeine Aussage getroffen

Geschweifte KlammernDie Anzahl der gesuchten Zeichen wird mit soge-nannten Quantifikatoren definiert Sie beziehensich immer auf den vorangegangenen Ausdruckim obigen Beispiel also das Set [0-9] Die ge-schweiften Klammern sind nur eine Art von Quan-tifikatoren Mit ihnen laumlsst sich sehr genau festle-gen welche Anzahl von Zeichen gesucht ist DerQuantifikator 13 besagt dass mindestens einund maximal drei Zeichen aus dem zuvor defi-nierten Set [0-9] gesucht werden Eine Varianteist der Quantifikator x der definiert dass genaux Zeichen aus dem zuvor definierten Set vorhan-den sein muumlssen

Der Punkt Auszligerhalb von Sets passt der Punkt auf jedes be-liebiges Zeichen ndash ausgenommen Zeilenumbruuml-che (wobei sich dieses Verhalten auch modifizie-ren laumlsst) Der Ausdruck 5 trifft also auf fuumlnf be-liebige Zeichen zu

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 9

PROGRAMMIERUNG

Stern und Plus +Bei Stern und Plus handelt es sich um soge-nannte vordefinierte Quantifikatoren Waumlhrendder Stern definiert dass 0 oder mehr Zeichendes vorherigen Ausdrucks gesucht werden de-finiert das Plus dass 1 oder mehr Zeichen ausdem vorherigen Ausdruck gesucht werden

Von Haus aus sind die beiden Quantifikatorenbdquogefraumlszligigldquo (engl greedy) Das heiszligt sie passenauf so viele Zeichen wie moumlglich Im folgendenBeispiel soll der Regulaumlre Ausdruck Pyon aufdie Zeichenkette Python passen

gtgtgt import regtgtgt text = Python Python Pythongtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Auf die genaue Syntax wird spaumlter noch ein-gegangen Auffaumlllig ist jedoch dass das Ergeb-nis nicht ndash wie vielleicht erwartet ndash die Zeichen-kette Python findet sondern die gesamte Zei-chenkette auf den Regulaumlren Ausdruck Pyonpasst Bei genauerer Betrachtung wird auch klarwarum Weil der Quantifikator gefraumlszligig ist wer-den so viele Zeichen wie moumlglich von dem Aus-druck konsumiert Entsprechend passt nichtnur Python auf den Ausdruck Pyon sondernauch die gesamte Zeichenkette ndash schlieszliglich be-ginnt auch die mit Py und endet mit on Um ge-fraumlszligige Quantifikatoren zu saumlttigen gibt es denFragezeichen-Quantifikator Alleinstehend stehtdas Fragezeichen fuumlr 0 oder 1 Vorkommen der

zuvor definierten Zeichen Steht es aber nach ei-nem gefraumlszligigen Quantifikator macht es diesengenuumlgsam (engl non-greedy)

gtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Hier gibt es ndash wie zu erwarten ndash drei Treffer

Die Escape-Sequenz Da die oben genannten Zeichen in RegulaumlrenAusdruumlcken eine Sonderfunktion haben ist derumgekehrte Schraumlgstrich als Escape-Sequenzdefiniert [5] Falls also tatsaumlchlich eine eckigeKlammer ein Punkt oder der Stern als Zeichenbenoumltigt werden muss ihnen in der Regel einumgekehrter Schraumlgstrich voran gestellt werdenDaher sind die Punkte in dem obigen RegulaumlrenAusdruck auch durch umgekehrte Schraumlgstrichemaskiert Es wird eben nicht der Punkt als vor-definierte Zeichenklasse benoumltigt sondern derPunkt als solcher Es gibt allerdings eine Ausnah-me Da viele Zeichen innerhalb von Sets (alsoinnerhalb von eckigen Klammern) ihre Sonderbe-deutung verlieren muumlssen sie hier nicht maskiertwerden Innerhalb eckiger Klammern stehen diemeisten Zeichen also fuumlr sich selbst - eine Aus-nahme ist das Minus-Zeichen - da es in SetsBereiche definiert ([0-9] oder [a-z]) Es mussin Sets maskiert werden wenn tatsaumlchlich dasMinus gemeint ist

Verwendung in PythonEin kleines Anwendungsbeispiel wurde obenschon beschrieben Zunaumlchst wurde dazu das

Modul re importiert Mit der Zeile pattern =recompile(rPyon) wurde ein sogenann-tes Pattern-Objekt erstellt und an den Namenpattern gebunden Dieses Objekt stellt ver-schiedene Methoden bereit um den RegulaumlrenAusdruck auf Zeichenketten anzuwenden Bevorauf diese Methoden naumlher eingegangen wird sollkurz auf eine kleine Besonderheit eingegangenwerden Der Zeichenkette die recompile alsParameter uumlbergeben wurde wurde ein r voran-gestellt Diese Notation ist von Unicode-Literalenin Python2 bekannt Aber was bedeutet das rEin Beispiel ist in diesem Fall sehr aufschluss-reich

Ein Regulaumlrer Ausdruck soll auf einen umgekehr-ten Schraumlgstrich passen Der erste Gedanke

gtgtgt rematch( )

ist schnell verworfen Da der Schraumlgstrichin Python-Zeichenketten als Escape-Sequenzdient wird dadurch nur das nachfolgende Anfuumlh-rungszeichen maskiert ndash ein Fehler tritt auf DieSchraumlgstriche muumlssen also jeweils maskiert wer-den

gtgtgt rematch( )

Auch dieses Vorgehen fuumlhrt zu einem FehlerJetzt handelt es sich zwar um guumlltige Python-Zeichenketten auf Ebene des Regulaumlren Aus-drucks steht dadurch jedoch wiederum nur eineinfacher Schraumlgstrich der ja in Regulaumlren Aus-druumlcken wiederum als Escape-Sequenz dient

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 10

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

MAGAZIN

Editorial

Neues zum fuumlnfen Programmierwett-bewerbEin Leser merkte (in einem privaten Gespraumlch)an dass das Thema zum fuumlnften freiesMagazin-Programmierwettbwerb [1] merkwuumlrdig gewaumlhltsei da es Wortwolken-Generatoren wie Sandam Meer gibt Wie beim Start des Wettbewerbsmitgeteilt haben wir nur einen einzigen freienStandalone-Generator gefunden Sicherlich hatjedes Content Management System (CMS) inklder freien Exemplare einen Wortwolkengeneratorfuumlr Tags Hiermit einen externen Text zu analysie-ren wird den meisten Nutzern aber schwer fallen

Daher zur Klarstellung Der Wettbewerb solldafuumlr sorgen dass es mehr freie Wortwolken-Generatoren gibt die fuumlr beliebige Texte einge-setzt werden koumlnnen (die in einem Textformatvorliegen) Und das Woumlrtchen bdquomehrldquo ist dabeinoch uumlbertrieben da uns wie gesagt nur ein ein-ziger bekannt ist

Zum weiteren Ablauf des Wettbewerbs sei ge-sagt dass nach Ablauf der Abgabefrist am15 April 2012 jedes Programm ausgiebig ge-testet wird Danach wird eine Bewertungsmatrixerstellt und jeder Teilnehmer erhaumllt seinen Be-wertungsbogen vorab zur Draufsicht Er kanndann dazu Stellung nehmen und ggf eine Kor-rektur anbringen wo wir im Test einfach nur nichtden bdquorichtigenldquo Knopf gefunden haben um eineFunktion zu aktivieren Eine Nachbesserung desProgrammes ist dann aber nicht mehr moumlglich

Gegen Ende April werden die Gewinner dannmitgeteilt und voraussichtlich in freiesMagazin052012 vorgestellt

Einige Fragen der Teilnehmer sind auch ein-getroffen und koumlnnen in den Leserbriefen aufSeite 44 nachgelesen werden

EPUB-AbschlussMit der Aprilausgabe von freiesMagazin verlaumlsstdie EPUB-Ausgabe auch offiziell die BetaphaseEs gibt ndash auszliger positivem Feedback ndash kaum nochKlagen dass etwas mit der Version nicht stimmtsodass wir sie regulaumlr unterstuumltzen wollen

Die Downloadzahlen der letzten Monate liegenbei rund 2400 (Januar) 1800 (Februar) und 1600(Maumlrz) Die Tendenz ist fallend insgesamt den-ken wir aber dass die Resonanz ziemlich gut istschlieszliglich besitzt nicht jeder Haushalt ein mobi-les Geraumlt mit EPUB-Unterstuumltzung bzw wollenmanche freiesMagazin auch gar nicht mobil le-sen

Wir bedanken uns daher bei allen freiesMagazin-Lesern fuumlr die Unterstuumltzung und wuumlnschen vielSpaszlig mit der neuen Ausgabe

Ihre freiesMagazin-RedaktionLINKS

[1] httpwwwfreiesmagazindefuenfter_programmierwettbewerb

Das Editorial kommentieren

Inhalt

Linux allgemeinDer Maumlrz im Kernelruumlckblick S 3

AnleitungenObjektorientierte Programmierung Teil 2 ndashDie richtige Strategie

S 5

Python ndash Teil 12 Regulaumlre Ausdruumlcke S 9Perl-Tutorium ndash Teil 6 Objekte der altenSchule

S 14

Selenium meets Java S 18

SoftwareDokumentenmanagement mit LetoDMS S 22Fish Fillets ndash Next Generation S 28

CommunityDANTE-Tagung 2012 in Leipzig S 32Rezension jQuery Novice to Ninja S 38Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung

S 40

Rezension Linux Das umfassende Hand-buch (5 Auflage)

S 42

MagazinEditorial S 2Leserbriefe S 44Veranstaltungen S 47Konventionen S 47Impressum S 48

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 2

KERNEL

Der Maumlrz 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

Entwicklung von Linux 33Der Entwicklungszyklus von Linux 33 lief ruhigaus Sowohl -rc6 [1] als auch -rc7 [2] konntenwieder in einem Sieben-Tage-Rhythmus veroumlf-fentlicht werden bdquoEigentlichldquo sollte es die sieb-te Entwicklerversion ja nicht mehr geben dadie sechste nur kleinere Korrekturen mitbrach-te Doch war das Gesamtvolumen der Aumlnderun-gen groszlig genug dass Torvalds noch keine Fi-nalversion daraus machen wollte Die kam dannanstelle des -rc8 [3] fiel zwar noch kleiner alsdie beiden letzten Vorabversionen aus brachteaber mit Aumlnderungen der Standardkonfigurationder ARM-basierten TILE-Architektur Unterstuumlt-zung der An-Abschaltung von Funkschnittstellenfuumlr Fujitsus Amilo-Serie und der Erkennung desBetriebsmodus fuumlr Tablet-PCs des gleichen Her-stellers mehr interessante Funktionen mit

Insgesamt dauerte die Entwicklung von Linux 33mit 75 Tagen etwas laumlnger als die des Vorgaumln-gers an die uumlber 90 Tage des unter dem Ein-bruch bei kernelorg leidenden 31 reicht die Zeitzum Gluumlck jedoch nicht heran

Uumlberblick uumlber Linux 33Fast zwei Jahre nach dem Rausschmiss (sie-he bdquoDer Maumlrz im Kernelruumlckblickldquo freiesMagazin042010 [4]) finden sich wieder Komponen-ten von Googles Smartphone-BetriebssystemAndroid im Linux-Kernel wieder Die erstenPatches wurden in Kroah-Hartmans Staging-Zweig aufgenommen und signalisieren da-mit die Annaumlherung der Entwicklerkreise umLinux- und Android-Kernel Die bisher aufge-nommenen Komponenten sind bdquoBinderldquo dasInterprozess-Kommunikations-Tool von Androiddas Logging-System bdquoLoggerldquo und das WerkzeugbdquoTimed GPIOldquo das zeitverzoumlgert auszufuumlhrendeEin-Ausgabe-Kommandos ermoumlglicht

Auch speicherspezifische Android-Erweiterungenwurden zuruumlckportiert darunter der bdquoLow Memo-ry Killerldquo der in einer Umgebung benoumltigt wirdin der Anwendungen nicht vom Nutzer been-det werden sondern vom Kernel sobald derArbeitsspeicher knapp wird

Ebenfalls in die Systemtiefen geht die Unterstuumlt-zung fuumlr EFI (Extensible Firmware Interface [5])das nach Einschalten eines Rechners fuumlr dasStarten des Betriebssystemkerns oder einesBootloaders genutzt wird Linux kann nun direktvon EFI gestartet werden ein Bootloader ist theo-retisch nicht mehr notwendig

Einer der Top-Kandidaten fuumlr funktionale Erwei-terungen in den vergangenen Linux-Versionenwar das Dateisystem Btrfs das waumlhrend des

Entwicklungszyklus von Linux 2629 in den Ker-nel aufgenommen wurde Diesmal wurde einebdquoBalanceldquo-Funktion verbessert die bislang gleich-bedeutend mit dem Neuschreiben des Dateisys-tems war Dies kann notwendig sein wenn ei-nem RAID eine Platte hinzugefuumlgt wird Aller-dings kann das lange Zeit dauern die Uumlberarbei-tung ermoumlglicht nun das Pausieren der Operati-on und erlaubt zudem auch noch die Aumlnderungdes RAID-Levels [6] Entwickler kommen nun inden Genuss eines neuen Werkzeugs zur Fehler-suche bei Btrfs bdquoIntegrity Checkldquo soll bei Schreib-vorgaumlngen zusaumltzliche Integritaumltstest durchfuumlh-ren und so das Auffinden von Fehlern beschleu-nigen Auch ext4 wurde bedacht dort wurde dieFunktion zum Aumlndern der Groumlszlige eines laufendenDateisystem verbessert Dies wird nun vollstaumln-dig durch den Kernel durchgefuumlhrt und geschiehtdadurch erheblich schneller

Einen erheblichen Anteil am neuen Kernel habennetzwerknahe Themen So wurde nun bdquoOpenvSwitchldquo aufgenommen der die Umsetzungeines virtuellen Switches darstellt Netzwerk-Switches [7] im Heimbereich meist in denBreitband-Router integriert stellen angeschlos-senen Geraumlten eine Netzwerkverbindung zur Ver-fuumlgung indem sie Netzwerkpakete direkt zwi-schen zwei kommunizierenden Geraumlten vermit-teln

Open vSwitch unterstuumltzt viele von modernenHardware-Switches gewohnte Funktionen wie

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 3

KERNEL

VLANs (virtuell getrennte Subnetze) Quality ofService (Bandbreitensteuerung) Spanning TreeProtocol (STP eine Funktion zur Feststellungund Vermeidung von Schleifen im Netzwerk)und Bonding (Zusammenfassung mehrerer Netz-werkschnittstellen) und ermoumlglicht damit die rea-litaumltsnahe Anbindung virtueller Maschinen an einebenso virtuelles Netzwerk Apropos BondingAbseits virtueller Netzwerke bietet bdquoTeamingldquo nuneine weitere Moumlglichkeit mehrere physikalischeNetzwerkschnittstellen zu einer virtuellen zusam-menzufassen Im Gegensatz zu den schon laumln-ger verfuumlgbaren bdquoBondingldquo-Geraumlten lassen sichTeaming-Geraumlte im Kontext des Anwenders be-treiben

Entlastung fuumlr Systeme die mit Engpaumlssen desArbeitsspeichers zu kaumlmpfen haben versprichteine Funktion die den vom Netzwerk-Stack ge-nutzten Speicher begrenzt Auch ist es nun moumlg-lich den Netzwerkverkehr je nach Anwendungzu priorisieren was vor allem auf Servern vonInteresse sein duumlrfte Mit bdquoByte Queue Limitsldquosoll gegen Verzoumlgerungen von Netzwerkkommu-nikation vorgegangen werden die auf dem Zwi-schenpuffern von Netzwerkpaketen an den ein-zelnen Zwischenstationen der Kommunikations-strecke beruhen Die Groumlszlige der Puffer kann nunbegrenzt werden womit sich eine Moumlglichkeitzum Tuning der Einstellungen an Netzwerkgerauml-ten ergibt

Eine vollstaumlndige Auflistung aller Neuerungenund Treiber des neuen Linux-Kernels liefert dieenglischsprachige Seite Kernelnewbies [8]

Ausblick auf Linux 34Die Arbeiten an den Android-Treibern dauernan Ein paar Aumlnderungen wurden auch schon inden staging-Zweig uumlbernommen darunter haupt-saumlchlich Korrekturen [9] Auch fuumlr den freienNVIDIA-Grafiktreiber Nouveau zeichnet sich ei-ne Aumlnderung ab Der Hauptentwickler Dave Air-lie betrachtet das ABI die Schnittstelle uumlber dieAnwendungen auf den Treiber zugreifen koumln-nen mittlerweile als stabil Er hat darum gebe-ten dass Nouveau in Linux 34 entsprechendals stabiler Treiber gefuumlhrt wird nachdem er be-reits schon laumlnger von verschiedenen Distribu-tionen verwendet wird [10] In der gleichen E-Mail verkuumlndete Airlie auch die Unterstuumltzung fuumlrNVIDIAs neueste Chip-Generation Kepler [11]die vor allem Ben Skeggs zu verdanken ist

Unterstuumltzung fuumlr 2632Der betagte Kernel 2632 sollte eigentlich nach263258 nicht weiter mit Aktualisierungen ver-sorgt werden Dabei wurde diese Version sehrlange unterstuumltzt da sich schon sehr fruumlhdie Kernel-Entwickler die bei den verschiede-nen Distributoren auf den Gehaltslisten stan-den auf 2632 als Basis fuumlr ihre Unternehmens-Distributionen geeinigt hatten Da allerdings diegroszligen Spieler bereits auf Folgeversionen auf-gesprungen sind laumlsst Greg Kroah-Hartman dieUnterstuumltzung nun fallen und widmet sich nunder LTSI-Initiative der Linux Foundation [12] diedie Bereitstellung und Pflege von Kernelversio-nen uumlber lange Zeitraumlume hinweg zum Ziel hatDie Pflege des 2632 uumlbernimmt nun Willy Tar-

reau der Patches jedoch nur in laumlngeren Inter-vallen bereitstellen wird [13]

LINKS

[1] httpslkmlorglkml201233139[2] httpslkmlorglkml2012310158[3] httpslkmlorglkml2012318132[4] httpwwwfreiesmagazindefreiesMagazin-2010-

04[5] httpsdewikipediaorgwikiExtensible_

Firmware_Interface[6] httpsdewikipediaorgwikiRAID[7] httpsdewikipediaorgwikiSwitch_(Computer

technik)[8] httpkernelnewbiesorgLinux_33[9] httpwwwgolemdenewslinux-weitere-android-

patches-fuer-kernel-3-4-1203-90394html[10] httpwwwpro-linuxdenews118186nouveau-

treiber-verlaesst-experimentelles-stadiumhtml[11] httpsdewikipediaorgwikiNvidia-Geforce-600-

Serie[12] httpltsilinuxfoundationorg[13] httpwwwpro-linuxdenews118115linux-2632-

geht-in-die-verlaengerte-wartungsphasehtml

Autoreninformation

Mathias Menzer (Webseite) haumllteinen Blick auf die Entwicklung desLinux-Kernels und erfaumlhrt fruumlhzeitigDetails uumlber interessante Funktionen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 4

PROGRAMMIERUNG

Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie von Dominik Wagenfuumlhr

D er Begriff der objektorientierten Pro-grammierung (kurz OOP [1]) existiertschon eine ganze Weile Wer zuvor

prozedural programmiert hat erwischt sichbeim Uumlbergang zu OOP oumlfter dabei wie er diefruumlheren Funktionen einfach mit einer Klas-se umgibt und dies als objektorientierte Pro-grammierung verkauft Die Artikelreihe sollan einem einfachen Beispiel zeigen was manin so einem Fall besser machen koumlnnte

Hinweis Bevor man im Artikel fortfaumlhrt sollteman sich den vorherigen Teil der Reihe durchge-lesen haben (siehe bdquoObjektorientierte Program-mierung Teil 1ldquo freiesMagazin 032012 [2])

Die Wahl der richtigen StrategieEin sehr beliebtes und bekanntes Entwurfsmus-ter ist das Strategie-Muster [3] Es dient vorran-gig dazu verschiedene Verhalten als Klassenumzusetzen die von einer Basisklasse abgelei-tet sind bdquoAuszligenldquo nutzt man dann nur diese Basis-klasse die konkreten Strategien sind dem Nutzerunbekannt Zusaumltzlich ist es moumlglich zur Laufzeiteiner Klasse ein neues Verhalteneine neue Stra-tegie zu geben

Dies wurde ansatzweise auch schon in der letz-ten Umsetzung gemacht bei der jeder konkre-te Bot von einer Basisklasse BaseBot abgeleitetwar Ein groszliger Unterschied besteht aber darindass es damals kein Verhalten war dass man er-stellt hat sondern einen bestimmten Typ

DesignDas Strategie-Entwurfsmuster wird eins zu einsumgesetzt wie es von der bdquoGang of Fourldquo vorlanger Zeit definiert wurde Da die Basisklasse al-ler konkreten Strategien keinerlei Logik umfasstwird ein Interface [4] IStrategy benutzt

Der Bot enthaumllt dann dieses Interface als Strate-gie Hierfuumlr wurde eine Aggregation [5] gewaumlhltweil die Strategie auch ohne Bot existieren kann(und wird) da sie von Game erzeugt wird DerBot uumlbernimmt dann nur noch dessen Zerstoumlrungbeim Beenden

KlassenaufteilungKlasse IStrategyBenoumltigt -Verantwort Interface fuumlr die konkreten Stra-

tegien um ein Angebot anzuneh-men oder abzulehnen

Klasse AcceptStrategyBasisklasse IStrategyBenoumltigt -Verantwort nimmt ein Angebot immer an

Klasse DeclineStrategyBasisklasse IStrategyBenoumltigt -Verantwort lehnt ein Angebot immer ab

Klasse VariableStrategyBasisklasse IStrategyBenoumltigt -

Verantwort entscheidet variabel ob ein Ange-bot abgelehnt oder angenommenwird

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die angenommenen Punkte

Klasse GameBenoumltigt Bot VariableStrategy IStra

tegy AcceptStrategy DeclineStrategy

Verantwort erstellt den Bot und die richtigeStrategie dazu liest Benutzerein-gabe und fragt Bot nach Annah-me oder Ablehnung

AbhaumlngigkeitenDas Interface IStrategy und die konkreten Stra-tegien haben keine Abhaumlngigkeiten

Der Bot ist nur vom Interface IStrategy abhaumln-gig nicht aber von den konkreten Strategien

Da die Klasse Game die konkreten Strategien er-stellen muss haumlngt es von diesen auch ab Zu-saumltzlich erstellt sie auch den Bot und gibt dessenPunkte am Ende aus

Vor- und NachteileDas Design der Klasse Bot aumlhnelt sehr starkdem ersten Ansatz im ersten Teil Der groszlige Un-terschied ist dass die Strategie durch ein echtesObjekt und nicht nur durch einen String reprauml-sentiert werden muss Der Vorteil ist nun dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 5

PROGRAMMIERUNG

Das Strategie-Muster in der Umsetzung

der Bot dank des Strategie-Musters die konkre-ten Strategien nicht kennen muss und voumlllig los-geloumlst davon arbeiten kann Mit diesem Designhat man das Design-Prinzip bdquoProgrammiere ge-gen Schnittstellen nicht gegen Implementierun-genldquo umgesetzt

Auch hat der Bot nunwirklich nur eine Auf-gabe naumlmlich Punktezaumlhlen Die Entschei-dung ob ein Angebotangenommen oder ab-gelehnt wird muss erselbst nicht mehr tref-fen dies uumlbernimmt sei-ne gesetzte Strategie

Das Strategie-Musterhat auch den Vorteildass zusaumltzliche ganzandere Verhaltenswei-sen des Bots leicht er-gaumlnzt werden koumlnnenHaumltte der Bot zwei wei-tere Verhaltensartendie es in jeweils drei un-terschiedlichen Ausprauml-gungen gibt erweitertman die Klasse Bot umzwei Interfaces und fuumlgtinsgesamt acht neueKlassen (pro Verhaltenein Interface und dreiRealisierungen) hinzu

Der Nachteil der Erweiterbarkeit bleibt aber nachwie vor Es ist zwar extrem leicht eine neueStrategie zu realisieren und diese dem Bot un-terzuschieben aber dennoch muss die KlasseGame alle konkreten Strategien kennen Wird ei-ne neue Strategie hinzugefuumlgt muss auch Game

angepasst werden Das ist also immer noch nichtdie ultimative Loumlsung

ImplementierungDie C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop3-beispieltargz

Die Erschaffung einer StrategieEin Nachteil der obigen Umsetzung ist dass dieKlasse Game von allen konkreten Strategien ab-haumlngt weil sie diese erstellen muss Diese Auf-gabe soll nun an eine Klasse uumlbergeben werdenderen einzige Aufgabe die Erstellung von Stra-tegien sein soll Hierfuumlr bedient man sich desFabrik-Musters (Factory-Pattern)

Von diesem Pattern gibt es drei Auspraumlgungenzum einen die Fabrik-Methode [6] dann die Ab-strakte Fabrik [7] und die Einfache Fabrik [8] Fuumlrdie Anwendung hier soll eine Einfache Fabrik ge-nutzt werden

DesignDie Umsetzung des Einfache-Fabrik-Musters istrecht simpel Das was vorher die Klasse Gamein der Methode start erledigt wird in einestatische Methode create der neuen KlasseStrategyFactory ausgelagert Game nutzt danndiese neue Klasse

Man haumltte auch auf die statische Methode ver-zichten und in der Methode start der Klas-se Game jedes Mal eine neue Instanz vonStrategyFactory erstellen koumlnnen Auch haumlt-te die Fabrik als Attribut von Game umgesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 6

PROGRAMMIERUNG

Die Einfache Fabrik erzeugt verschiedene Strategien

werden koumlnnen Es gibt keineGruumlnde dies nicht auch so zutun

KlassenaufteilungAn den CRC-Karten fuumlr die Stra-tegien hat sich nichts geaumlndertsodass diese hier nicht noch ein-mal dargestellt werden sollen

Klasse StrategyFactoryBenoumltigt IStrategy

VariableStrategyAcceptStrategyDeclineStrategy

Verantwort erstellt die richti-ge Strategie (jenach Konsolenpa-rameter)

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die ange-

nommenen Punk-te

Klasse GameBenoumltigt StrategyFactory

BotVerantwort erstellt den Bot

und setzt die vonder Fabrik erzeug-te Strategie liest Benutzereinga-be fragt Bot nach Annahme oderAblehnung

AbhaumlngigkeitenDie Klasse StrategyFactory ist von allen kon-kreten Strategien abhaumlngig da sie diese erzeugt

Durch diese Abstraktion ist die Ab-haumlngigkeit von Game zu den Strate-gien aber verschwunden

Vor- und NachteileWas ist der Vorteil der FabrikDie Klasse Game ist nun viel un-abhaumlngiger Egal ob neue Strate-gien hinzugefuumlgt werden oder al-te sich aumlndern die Klasse Gameund somit die Bibliothek libgamemuss nicht neu erstellt werdenDer Code ist also gut gekapseltund laumlsst sich so einfach erweiternund warten Mit diesem Designhat man das Design-Prinzip bdquoKap-sele was sich veraumlndertldquo gut um-gesetzt

Dennoch ist es eher schlechtdass die StrategyFactory je-des Mal angepasst werden musswenn eine neue Strategie hinzuge-fuumlgt wird Das laumlsst sich also nochverbessern

ImplementierungJe nach Sprache kann man dieEinfache Fabrik auf verschiede-ne Arten umsetzen Selbst in C++kann man den Code auf vieleverschiedene Weisen erstellen Inder Beispielimplementierung wur-

de sich fuumlr eine einfache Loumlsung entschiedenbei der die drei konkreten Strategien in einem as-soziativen Array gespeichert werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 7

PROGRAMMIERUNG

Diese Loumlsung entspricht in etwa auchdem Endprodukt beim freiesMagazin-Programmierwettbewerb [9] Sie hatte den Vor-teil dass Teilnehmer die StrategyFactory nuran zwei Stellen anpassen mussten Zum einenmusste das assoziative Array erweitert wer-den zum anderen musste natuumlrlich die neueStrategie-Header-Datei inkludiert werden

Die C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop4-beispieltargz

AusblickDerzeit nutzt die Klasse Game die statischen Ope-rationen der StrategyFactory Im naumlchsten Teil

lernt man ein Muster kennen welches diesesKonzept etwas verbessert

LINKS

[1] httpssecurewikimediaorgwikipediadewikiObjektorientierte_Programmierung

[2] httpwwwfreiesmagazindefreiesMagazin-2012-03

[3] httpsdewikipediaorgwikiStrategie_(Entwurfsmuster)

[4] httpsdewikipediaorgwikiSchnittstelle_(Programmierung)

[5] httpsdewikipediaorgwikiAssoziation_(UML)Aggregation

[6] httpsdewikipediaorgwikiFabrikmethode

[7] httpsdewikipediaorgwikiAbstrakte_Fabrik[8] httpwwwoodesigncomfactory-patternhtml[9] httpwwwfreiesmagazinde20111001-vierter-

freiesmagazin-programmierwettbewerb-gestartet

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istC++-Software-Entwickler und hattaumlglich mit Software-Design zu tun

Diesen Artikel kommentieren

bdquoQwertial Aphasialdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom604

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 8

PROGRAMMIERUNG

Python ndash Teil 12 Regulaumlre Ausdruumlcke von Daniel Noumlgel

N achdem im letzten Teil (siehe bdquoPy-thon ndash Teil 11 Zwitschern in Schwarz-Weiszligldquo freiesMagazin 022012 [1]) die-

ser Reihe ein kleiner Twitter-Client bespro-chen wurde wird es nun wieder etwas theo-retischer Anhand einiger einfacher Beispie-le sollen Regulaumlre Ausdruumlcke vorgestellt wer-den

Wie man eine Zeichenkette beschreibtWer sich bereits ein wenig mit Programmierungbeschaumlftigt hat wird mit groszliger Wahrscheinlich-keit schon einmal Regulaumlren Ausdruumlcken begeg-net sein Auf den ersten Blick wirken die Aus-druumlcke haumlufig recht kryptisch und abschreckendDabei ist nur wenig Aufwand noumltig um sich zu-mindest einige Grundlagen anzueignen

Regulaumlre Ausdruumlcke sind ndash vereinfacht gesagt ndashBeschreibungen von Zeichenketten Wer Regulauml-re Ausdruumlcke verwendet moumlchte also eine mehroder weniger definierte Zeichenkette finden bzwuumlberpruumlfen In Python lassen sich Regulaumlre Aus-druumlcke uumlber das Modul re anbinden [2]

Ein haumlufiges Beispiel ist das Auslesen einer IP-Adresse von einer Seite So bietet DynDNSorgeinen Service an der die derzeitige externeIP-Adresse eines Besuchers anzeigt [3] Dochwie liest man diese Adresse automatisiert ausHaumlufig reichen Methoden wie strfind() oderstrsplit() nicht aus um derartige Problemezu loumlsen Mit Regulaumlren Ausdruumlcken kann die ge-

suchte Zeichenkette beschrieben werden ohnegenaueres Wissen uumlber das bdquoUmfeldldquo zu benoumlti-gen

Im Fall von IPv4-Adressen wird eine Zeichenket-te gesucht die in der Regel aus vier Bloumlcken mitjeweils ein bis drei Ziffern besteht ndash getrennt vonPunkten Ein vereinfachter Regulaumlrer Ausdruckkoumlnnte diese Zeichenkette wie folgt beschreiben

[0-9]13[0-9]13[0-9]13[0-9]13

Vereinfacht ist dieser Ausdruck deshalb weil erauch Adressen wie 999999999999 akzeptie-ren wuumlrde was aber keine guumlltige IP-Adresseist Im Netz finden sich Beispiele fuumlr RegulaumlreAusdruumlcke die diesen Umstand beruumlcksichtigenndash lesbarer werden die Regulaumlren Ausdruumlcke da-durch allerdings nicht [4]

ZeichenkundeIn Regulaumlren Ausdruumlcken haben viele Zeichen ei-ne besondere Bedeutung ndash etwa die eckigen undgeschweiften Klammern oder auch der PunktDie grundlegenden Zeichen sollen im Folgendenkurz vorgestellt werden

Eckige Klammern []Eckige Klammern definieren in Regulaumlren Aus-druumlcken sogenannte Sets In den Klammernkann also ein Set von Zeichen definiert werdenauf die der Regulaumlre Ausdruck passen soll Wennetwa die Vokale a e i o und u in das Set aufge-

nommen werden sollen wuumlrde das Set so ausse-hen [aeiou] Im obigen Beispiel wird mit Hilfedes Minus-Zeichens ein sogenannter Bereich de-finiert [0-9] trifft also auf Zahlen von 0 bis 9 zuEs koumlnnen auch Bereiche uumlber Buchstaben gebil-det werden so trifft [a-z] auf die kleinen Buch-staben von a bis z zu Wichtig dabei Das Setdefiniert zunaumlchst nur welche Zeichen prinzipiell

gesucht sind Uumlber die Rei-henfolge und Anzahl wirdkeine Aussage getroffen

Geschweifte KlammernDie Anzahl der gesuchten Zeichen wird mit soge-nannten Quantifikatoren definiert Sie beziehensich immer auf den vorangegangenen Ausdruckim obigen Beispiel also das Set [0-9] Die ge-schweiften Klammern sind nur eine Art von Quan-tifikatoren Mit ihnen laumlsst sich sehr genau festle-gen welche Anzahl von Zeichen gesucht ist DerQuantifikator 13 besagt dass mindestens einund maximal drei Zeichen aus dem zuvor defi-nierten Set [0-9] gesucht werden Eine Varianteist der Quantifikator x der definiert dass genaux Zeichen aus dem zuvor definierten Set vorhan-den sein muumlssen

Der Punkt Auszligerhalb von Sets passt der Punkt auf jedes be-liebiges Zeichen ndash ausgenommen Zeilenumbruuml-che (wobei sich dieses Verhalten auch modifizie-ren laumlsst) Der Ausdruck 5 trifft also auf fuumlnf be-liebige Zeichen zu

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 9

PROGRAMMIERUNG

Stern und Plus +Bei Stern und Plus handelt es sich um soge-nannte vordefinierte Quantifikatoren Waumlhrendder Stern definiert dass 0 oder mehr Zeichendes vorherigen Ausdrucks gesucht werden de-finiert das Plus dass 1 oder mehr Zeichen ausdem vorherigen Ausdruck gesucht werden

Von Haus aus sind die beiden Quantifikatorenbdquogefraumlszligigldquo (engl greedy) Das heiszligt sie passenauf so viele Zeichen wie moumlglich Im folgendenBeispiel soll der Regulaumlre Ausdruck Pyon aufdie Zeichenkette Python passen

gtgtgt import regtgtgt text = Python Python Pythongtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Auf die genaue Syntax wird spaumlter noch ein-gegangen Auffaumlllig ist jedoch dass das Ergeb-nis nicht ndash wie vielleicht erwartet ndash die Zeichen-kette Python findet sondern die gesamte Zei-chenkette auf den Regulaumlren Ausdruck Pyonpasst Bei genauerer Betrachtung wird auch klarwarum Weil der Quantifikator gefraumlszligig ist wer-den so viele Zeichen wie moumlglich von dem Aus-druck konsumiert Entsprechend passt nichtnur Python auf den Ausdruck Pyon sondernauch die gesamte Zeichenkette ndash schlieszliglich be-ginnt auch die mit Py und endet mit on Um ge-fraumlszligige Quantifikatoren zu saumlttigen gibt es denFragezeichen-Quantifikator Alleinstehend stehtdas Fragezeichen fuumlr 0 oder 1 Vorkommen der

zuvor definierten Zeichen Steht es aber nach ei-nem gefraumlszligigen Quantifikator macht es diesengenuumlgsam (engl non-greedy)

gtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Hier gibt es ndash wie zu erwarten ndash drei Treffer

Die Escape-Sequenz Da die oben genannten Zeichen in RegulaumlrenAusdruumlcken eine Sonderfunktion haben ist derumgekehrte Schraumlgstrich als Escape-Sequenzdefiniert [5] Falls also tatsaumlchlich eine eckigeKlammer ein Punkt oder der Stern als Zeichenbenoumltigt werden muss ihnen in der Regel einumgekehrter Schraumlgstrich voran gestellt werdenDaher sind die Punkte in dem obigen RegulaumlrenAusdruck auch durch umgekehrte Schraumlgstrichemaskiert Es wird eben nicht der Punkt als vor-definierte Zeichenklasse benoumltigt sondern derPunkt als solcher Es gibt allerdings eine Ausnah-me Da viele Zeichen innerhalb von Sets (alsoinnerhalb von eckigen Klammern) ihre Sonderbe-deutung verlieren muumlssen sie hier nicht maskiertwerden Innerhalb eckiger Klammern stehen diemeisten Zeichen also fuumlr sich selbst - eine Aus-nahme ist das Minus-Zeichen - da es in SetsBereiche definiert ([0-9] oder [a-z]) Es mussin Sets maskiert werden wenn tatsaumlchlich dasMinus gemeint ist

Verwendung in PythonEin kleines Anwendungsbeispiel wurde obenschon beschrieben Zunaumlchst wurde dazu das

Modul re importiert Mit der Zeile pattern =recompile(rPyon) wurde ein sogenann-tes Pattern-Objekt erstellt und an den Namenpattern gebunden Dieses Objekt stellt ver-schiedene Methoden bereit um den RegulaumlrenAusdruck auf Zeichenketten anzuwenden Bevorauf diese Methoden naumlher eingegangen wird sollkurz auf eine kleine Besonderheit eingegangenwerden Der Zeichenkette die recompile alsParameter uumlbergeben wurde wurde ein r voran-gestellt Diese Notation ist von Unicode-Literalenin Python2 bekannt Aber was bedeutet das rEin Beispiel ist in diesem Fall sehr aufschluss-reich

Ein Regulaumlrer Ausdruck soll auf einen umgekehr-ten Schraumlgstrich passen Der erste Gedanke

gtgtgt rematch( )

ist schnell verworfen Da der Schraumlgstrichin Python-Zeichenketten als Escape-Sequenzdient wird dadurch nur das nachfolgende Anfuumlh-rungszeichen maskiert ndash ein Fehler tritt auf DieSchraumlgstriche muumlssen also jeweils maskiert wer-den

gtgtgt rematch( )

Auch dieses Vorgehen fuumlhrt zu einem FehlerJetzt handelt es sich zwar um guumlltige Python-Zeichenketten auf Ebene des Regulaumlren Aus-drucks steht dadurch jedoch wiederum nur eineinfacher Schraumlgstrich der ja in Regulaumlren Aus-druumlcken wiederum als Escape-Sequenz dient

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 10

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

KERNEL

Der Maumlrz 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

Entwicklung von Linux 33Der Entwicklungszyklus von Linux 33 lief ruhigaus Sowohl -rc6 [1] als auch -rc7 [2] konntenwieder in einem Sieben-Tage-Rhythmus veroumlf-fentlicht werden bdquoEigentlichldquo sollte es die sieb-te Entwicklerversion ja nicht mehr geben dadie sechste nur kleinere Korrekturen mitbrach-te Doch war das Gesamtvolumen der Aumlnderun-gen groszlig genug dass Torvalds noch keine Fi-nalversion daraus machen wollte Die kam dannanstelle des -rc8 [3] fiel zwar noch kleiner alsdie beiden letzten Vorabversionen aus brachteaber mit Aumlnderungen der Standardkonfigurationder ARM-basierten TILE-Architektur Unterstuumlt-zung der An-Abschaltung von Funkschnittstellenfuumlr Fujitsus Amilo-Serie und der Erkennung desBetriebsmodus fuumlr Tablet-PCs des gleichen Her-stellers mehr interessante Funktionen mit

Insgesamt dauerte die Entwicklung von Linux 33mit 75 Tagen etwas laumlnger als die des Vorgaumln-gers an die uumlber 90 Tage des unter dem Ein-bruch bei kernelorg leidenden 31 reicht die Zeitzum Gluumlck jedoch nicht heran

Uumlberblick uumlber Linux 33Fast zwei Jahre nach dem Rausschmiss (sie-he bdquoDer Maumlrz im Kernelruumlckblickldquo freiesMagazin042010 [4]) finden sich wieder Komponen-ten von Googles Smartphone-BetriebssystemAndroid im Linux-Kernel wieder Die erstenPatches wurden in Kroah-Hartmans Staging-Zweig aufgenommen und signalisieren da-mit die Annaumlherung der Entwicklerkreise umLinux- und Android-Kernel Die bisher aufge-nommenen Komponenten sind bdquoBinderldquo dasInterprozess-Kommunikations-Tool von Androiddas Logging-System bdquoLoggerldquo und das WerkzeugbdquoTimed GPIOldquo das zeitverzoumlgert auszufuumlhrendeEin-Ausgabe-Kommandos ermoumlglicht

Auch speicherspezifische Android-Erweiterungenwurden zuruumlckportiert darunter der bdquoLow Memo-ry Killerldquo der in einer Umgebung benoumltigt wirdin der Anwendungen nicht vom Nutzer been-det werden sondern vom Kernel sobald derArbeitsspeicher knapp wird

Ebenfalls in die Systemtiefen geht die Unterstuumlt-zung fuumlr EFI (Extensible Firmware Interface [5])das nach Einschalten eines Rechners fuumlr dasStarten des Betriebssystemkerns oder einesBootloaders genutzt wird Linux kann nun direktvon EFI gestartet werden ein Bootloader ist theo-retisch nicht mehr notwendig

Einer der Top-Kandidaten fuumlr funktionale Erwei-terungen in den vergangenen Linux-Versionenwar das Dateisystem Btrfs das waumlhrend des

Entwicklungszyklus von Linux 2629 in den Ker-nel aufgenommen wurde Diesmal wurde einebdquoBalanceldquo-Funktion verbessert die bislang gleich-bedeutend mit dem Neuschreiben des Dateisys-tems war Dies kann notwendig sein wenn ei-nem RAID eine Platte hinzugefuumlgt wird Aller-dings kann das lange Zeit dauern die Uumlberarbei-tung ermoumlglicht nun das Pausieren der Operati-on und erlaubt zudem auch noch die Aumlnderungdes RAID-Levels [6] Entwickler kommen nun inden Genuss eines neuen Werkzeugs zur Fehler-suche bei Btrfs bdquoIntegrity Checkldquo soll bei Schreib-vorgaumlngen zusaumltzliche Integritaumltstest durchfuumlh-ren und so das Auffinden von Fehlern beschleu-nigen Auch ext4 wurde bedacht dort wurde dieFunktion zum Aumlndern der Groumlszlige eines laufendenDateisystem verbessert Dies wird nun vollstaumln-dig durch den Kernel durchgefuumlhrt und geschiehtdadurch erheblich schneller

Einen erheblichen Anteil am neuen Kernel habennetzwerknahe Themen So wurde nun bdquoOpenvSwitchldquo aufgenommen der die Umsetzungeines virtuellen Switches darstellt Netzwerk-Switches [7] im Heimbereich meist in denBreitband-Router integriert stellen angeschlos-senen Geraumlten eine Netzwerkverbindung zur Ver-fuumlgung indem sie Netzwerkpakete direkt zwi-schen zwei kommunizierenden Geraumlten vermit-teln

Open vSwitch unterstuumltzt viele von modernenHardware-Switches gewohnte Funktionen wie

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 3

KERNEL

VLANs (virtuell getrennte Subnetze) Quality ofService (Bandbreitensteuerung) Spanning TreeProtocol (STP eine Funktion zur Feststellungund Vermeidung von Schleifen im Netzwerk)und Bonding (Zusammenfassung mehrerer Netz-werkschnittstellen) und ermoumlglicht damit die rea-litaumltsnahe Anbindung virtueller Maschinen an einebenso virtuelles Netzwerk Apropos BondingAbseits virtueller Netzwerke bietet bdquoTeamingldquo nuneine weitere Moumlglichkeit mehrere physikalischeNetzwerkschnittstellen zu einer virtuellen zusam-menzufassen Im Gegensatz zu den schon laumln-ger verfuumlgbaren bdquoBondingldquo-Geraumlten lassen sichTeaming-Geraumlte im Kontext des Anwenders be-treiben

Entlastung fuumlr Systeme die mit Engpaumlssen desArbeitsspeichers zu kaumlmpfen haben versprichteine Funktion die den vom Netzwerk-Stack ge-nutzten Speicher begrenzt Auch ist es nun moumlg-lich den Netzwerkverkehr je nach Anwendungzu priorisieren was vor allem auf Servern vonInteresse sein duumlrfte Mit bdquoByte Queue Limitsldquosoll gegen Verzoumlgerungen von Netzwerkkommu-nikation vorgegangen werden die auf dem Zwi-schenpuffern von Netzwerkpaketen an den ein-zelnen Zwischenstationen der Kommunikations-strecke beruhen Die Groumlszlige der Puffer kann nunbegrenzt werden womit sich eine Moumlglichkeitzum Tuning der Einstellungen an Netzwerkgerauml-ten ergibt

Eine vollstaumlndige Auflistung aller Neuerungenund Treiber des neuen Linux-Kernels liefert dieenglischsprachige Seite Kernelnewbies [8]

Ausblick auf Linux 34Die Arbeiten an den Android-Treibern dauernan Ein paar Aumlnderungen wurden auch schon inden staging-Zweig uumlbernommen darunter haupt-saumlchlich Korrekturen [9] Auch fuumlr den freienNVIDIA-Grafiktreiber Nouveau zeichnet sich ei-ne Aumlnderung ab Der Hauptentwickler Dave Air-lie betrachtet das ABI die Schnittstelle uumlber dieAnwendungen auf den Treiber zugreifen koumln-nen mittlerweile als stabil Er hat darum gebe-ten dass Nouveau in Linux 34 entsprechendals stabiler Treiber gefuumlhrt wird nachdem er be-reits schon laumlnger von verschiedenen Distribu-tionen verwendet wird [10] In der gleichen E-Mail verkuumlndete Airlie auch die Unterstuumltzung fuumlrNVIDIAs neueste Chip-Generation Kepler [11]die vor allem Ben Skeggs zu verdanken ist

Unterstuumltzung fuumlr 2632Der betagte Kernel 2632 sollte eigentlich nach263258 nicht weiter mit Aktualisierungen ver-sorgt werden Dabei wurde diese Version sehrlange unterstuumltzt da sich schon sehr fruumlhdie Kernel-Entwickler die bei den verschiede-nen Distributoren auf den Gehaltslisten stan-den auf 2632 als Basis fuumlr ihre Unternehmens-Distributionen geeinigt hatten Da allerdings diegroszligen Spieler bereits auf Folgeversionen auf-gesprungen sind laumlsst Greg Kroah-Hartman dieUnterstuumltzung nun fallen und widmet sich nunder LTSI-Initiative der Linux Foundation [12] diedie Bereitstellung und Pflege von Kernelversio-nen uumlber lange Zeitraumlume hinweg zum Ziel hatDie Pflege des 2632 uumlbernimmt nun Willy Tar-

reau der Patches jedoch nur in laumlngeren Inter-vallen bereitstellen wird [13]

LINKS

[1] httpslkmlorglkml201233139[2] httpslkmlorglkml2012310158[3] httpslkmlorglkml2012318132[4] httpwwwfreiesmagazindefreiesMagazin-2010-

04[5] httpsdewikipediaorgwikiExtensible_

Firmware_Interface[6] httpsdewikipediaorgwikiRAID[7] httpsdewikipediaorgwikiSwitch_(Computer

technik)[8] httpkernelnewbiesorgLinux_33[9] httpwwwgolemdenewslinux-weitere-android-

patches-fuer-kernel-3-4-1203-90394html[10] httpwwwpro-linuxdenews118186nouveau-

treiber-verlaesst-experimentelles-stadiumhtml[11] httpsdewikipediaorgwikiNvidia-Geforce-600-

Serie[12] httpltsilinuxfoundationorg[13] httpwwwpro-linuxdenews118115linux-2632-

geht-in-die-verlaengerte-wartungsphasehtml

Autoreninformation

Mathias Menzer (Webseite) haumllteinen Blick auf die Entwicklung desLinux-Kernels und erfaumlhrt fruumlhzeitigDetails uumlber interessante Funktionen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 4

PROGRAMMIERUNG

Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie von Dominik Wagenfuumlhr

D er Begriff der objektorientierten Pro-grammierung (kurz OOP [1]) existiertschon eine ganze Weile Wer zuvor

prozedural programmiert hat erwischt sichbeim Uumlbergang zu OOP oumlfter dabei wie er diefruumlheren Funktionen einfach mit einer Klas-se umgibt und dies als objektorientierte Pro-grammierung verkauft Die Artikelreihe sollan einem einfachen Beispiel zeigen was manin so einem Fall besser machen koumlnnte

Hinweis Bevor man im Artikel fortfaumlhrt sollteman sich den vorherigen Teil der Reihe durchge-lesen haben (siehe bdquoObjektorientierte Program-mierung Teil 1ldquo freiesMagazin 032012 [2])

Die Wahl der richtigen StrategieEin sehr beliebtes und bekanntes Entwurfsmus-ter ist das Strategie-Muster [3] Es dient vorran-gig dazu verschiedene Verhalten als Klassenumzusetzen die von einer Basisklasse abgelei-tet sind bdquoAuszligenldquo nutzt man dann nur diese Basis-klasse die konkreten Strategien sind dem Nutzerunbekannt Zusaumltzlich ist es moumlglich zur Laufzeiteiner Klasse ein neues Verhalteneine neue Stra-tegie zu geben

Dies wurde ansatzweise auch schon in der letz-ten Umsetzung gemacht bei der jeder konkre-te Bot von einer Basisklasse BaseBot abgeleitetwar Ein groszliger Unterschied besteht aber darindass es damals kein Verhalten war dass man er-stellt hat sondern einen bestimmten Typ

DesignDas Strategie-Entwurfsmuster wird eins zu einsumgesetzt wie es von der bdquoGang of Fourldquo vorlanger Zeit definiert wurde Da die Basisklasse al-ler konkreten Strategien keinerlei Logik umfasstwird ein Interface [4] IStrategy benutzt

Der Bot enthaumllt dann dieses Interface als Strate-gie Hierfuumlr wurde eine Aggregation [5] gewaumlhltweil die Strategie auch ohne Bot existieren kann(und wird) da sie von Game erzeugt wird DerBot uumlbernimmt dann nur noch dessen Zerstoumlrungbeim Beenden

KlassenaufteilungKlasse IStrategyBenoumltigt -Verantwort Interface fuumlr die konkreten Stra-

tegien um ein Angebot anzuneh-men oder abzulehnen

Klasse AcceptStrategyBasisklasse IStrategyBenoumltigt -Verantwort nimmt ein Angebot immer an

Klasse DeclineStrategyBasisklasse IStrategyBenoumltigt -Verantwort lehnt ein Angebot immer ab

Klasse VariableStrategyBasisklasse IStrategyBenoumltigt -

Verantwort entscheidet variabel ob ein Ange-bot abgelehnt oder angenommenwird

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die angenommenen Punkte

Klasse GameBenoumltigt Bot VariableStrategy IStra

tegy AcceptStrategy DeclineStrategy

Verantwort erstellt den Bot und die richtigeStrategie dazu liest Benutzerein-gabe und fragt Bot nach Annah-me oder Ablehnung

AbhaumlngigkeitenDas Interface IStrategy und die konkreten Stra-tegien haben keine Abhaumlngigkeiten

Der Bot ist nur vom Interface IStrategy abhaumln-gig nicht aber von den konkreten Strategien

Da die Klasse Game die konkreten Strategien er-stellen muss haumlngt es von diesen auch ab Zu-saumltzlich erstellt sie auch den Bot und gibt dessenPunkte am Ende aus

Vor- und NachteileDas Design der Klasse Bot aumlhnelt sehr starkdem ersten Ansatz im ersten Teil Der groszlige Un-terschied ist dass die Strategie durch ein echtesObjekt und nicht nur durch einen String reprauml-sentiert werden muss Der Vorteil ist nun dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 5

PROGRAMMIERUNG

Das Strategie-Muster in der Umsetzung

der Bot dank des Strategie-Musters die konkre-ten Strategien nicht kennen muss und voumlllig los-geloumlst davon arbeiten kann Mit diesem Designhat man das Design-Prinzip bdquoProgrammiere ge-gen Schnittstellen nicht gegen Implementierun-genldquo umgesetzt

Auch hat der Bot nunwirklich nur eine Auf-gabe naumlmlich Punktezaumlhlen Die Entschei-dung ob ein Angebotangenommen oder ab-gelehnt wird muss erselbst nicht mehr tref-fen dies uumlbernimmt sei-ne gesetzte Strategie

Das Strategie-Musterhat auch den Vorteildass zusaumltzliche ganzandere Verhaltenswei-sen des Bots leicht er-gaumlnzt werden koumlnnenHaumltte der Bot zwei wei-tere Verhaltensartendie es in jeweils drei un-terschiedlichen Ausprauml-gungen gibt erweitertman die Klasse Bot umzwei Interfaces und fuumlgtinsgesamt acht neueKlassen (pro Verhaltenein Interface und dreiRealisierungen) hinzu

Der Nachteil der Erweiterbarkeit bleibt aber nachwie vor Es ist zwar extrem leicht eine neueStrategie zu realisieren und diese dem Bot un-terzuschieben aber dennoch muss die KlasseGame alle konkreten Strategien kennen Wird ei-ne neue Strategie hinzugefuumlgt muss auch Game

angepasst werden Das ist also immer noch nichtdie ultimative Loumlsung

ImplementierungDie C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop3-beispieltargz

Die Erschaffung einer StrategieEin Nachteil der obigen Umsetzung ist dass dieKlasse Game von allen konkreten Strategien ab-haumlngt weil sie diese erstellen muss Diese Auf-gabe soll nun an eine Klasse uumlbergeben werdenderen einzige Aufgabe die Erstellung von Stra-tegien sein soll Hierfuumlr bedient man sich desFabrik-Musters (Factory-Pattern)

Von diesem Pattern gibt es drei Auspraumlgungenzum einen die Fabrik-Methode [6] dann die Ab-strakte Fabrik [7] und die Einfache Fabrik [8] Fuumlrdie Anwendung hier soll eine Einfache Fabrik ge-nutzt werden

DesignDie Umsetzung des Einfache-Fabrik-Musters istrecht simpel Das was vorher die Klasse Gamein der Methode start erledigt wird in einestatische Methode create der neuen KlasseStrategyFactory ausgelagert Game nutzt danndiese neue Klasse

Man haumltte auch auf die statische Methode ver-zichten und in der Methode start der Klas-se Game jedes Mal eine neue Instanz vonStrategyFactory erstellen koumlnnen Auch haumlt-te die Fabrik als Attribut von Game umgesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 6

PROGRAMMIERUNG

Die Einfache Fabrik erzeugt verschiedene Strategien

werden koumlnnen Es gibt keineGruumlnde dies nicht auch so zutun

KlassenaufteilungAn den CRC-Karten fuumlr die Stra-tegien hat sich nichts geaumlndertsodass diese hier nicht noch ein-mal dargestellt werden sollen

Klasse StrategyFactoryBenoumltigt IStrategy

VariableStrategyAcceptStrategyDeclineStrategy

Verantwort erstellt die richti-ge Strategie (jenach Konsolenpa-rameter)

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die ange-

nommenen Punk-te

Klasse GameBenoumltigt StrategyFactory

BotVerantwort erstellt den Bot

und setzt die vonder Fabrik erzeug-te Strategie liest Benutzereinga-be fragt Bot nach Annahme oderAblehnung

AbhaumlngigkeitenDie Klasse StrategyFactory ist von allen kon-kreten Strategien abhaumlngig da sie diese erzeugt

Durch diese Abstraktion ist die Ab-haumlngigkeit von Game zu den Strate-gien aber verschwunden

Vor- und NachteileWas ist der Vorteil der FabrikDie Klasse Game ist nun viel un-abhaumlngiger Egal ob neue Strate-gien hinzugefuumlgt werden oder al-te sich aumlndern die Klasse Gameund somit die Bibliothek libgamemuss nicht neu erstellt werdenDer Code ist also gut gekapseltund laumlsst sich so einfach erweiternund warten Mit diesem Designhat man das Design-Prinzip bdquoKap-sele was sich veraumlndertldquo gut um-gesetzt

Dennoch ist es eher schlechtdass die StrategyFactory je-des Mal angepasst werden musswenn eine neue Strategie hinzuge-fuumlgt wird Das laumlsst sich also nochverbessern

ImplementierungJe nach Sprache kann man dieEinfache Fabrik auf verschiede-ne Arten umsetzen Selbst in C++kann man den Code auf vieleverschiedene Weisen erstellen Inder Beispielimplementierung wur-

de sich fuumlr eine einfache Loumlsung entschiedenbei der die drei konkreten Strategien in einem as-soziativen Array gespeichert werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 7

PROGRAMMIERUNG

Diese Loumlsung entspricht in etwa auchdem Endprodukt beim freiesMagazin-Programmierwettbewerb [9] Sie hatte den Vor-teil dass Teilnehmer die StrategyFactory nuran zwei Stellen anpassen mussten Zum einenmusste das assoziative Array erweitert wer-den zum anderen musste natuumlrlich die neueStrategie-Header-Datei inkludiert werden

Die C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop4-beispieltargz

AusblickDerzeit nutzt die Klasse Game die statischen Ope-rationen der StrategyFactory Im naumlchsten Teil

lernt man ein Muster kennen welches diesesKonzept etwas verbessert

LINKS

[1] httpssecurewikimediaorgwikipediadewikiObjektorientierte_Programmierung

[2] httpwwwfreiesmagazindefreiesMagazin-2012-03

[3] httpsdewikipediaorgwikiStrategie_(Entwurfsmuster)

[4] httpsdewikipediaorgwikiSchnittstelle_(Programmierung)

[5] httpsdewikipediaorgwikiAssoziation_(UML)Aggregation

[6] httpsdewikipediaorgwikiFabrikmethode

[7] httpsdewikipediaorgwikiAbstrakte_Fabrik[8] httpwwwoodesigncomfactory-patternhtml[9] httpwwwfreiesmagazinde20111001-vierter-

freiesmagazin-programmierwettbewerb-gestartet

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istC++-Software-Entwickler und hattaumlglich mit Software-Design zu tun

Diesen Artikel kommentieren

bdquoQwertial Aphasialdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom604

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 8

PROGRAMMIERUNG

Python ndash Teil 12 Regulaumlre Ausdruumlcke von Daniel Noumlgel

N achdem im letzten Teil (siehe bdquoPy-thon ndash Teil 11 Zwitschern in Schwarz-Weiszligldquo freiesMagazin 022012 [1]) die-

ser Reihe ein kleiner Twitter-Client bespro-chen wurde wird es nun wieder etwas theo-retischer Anhand einiger einfacher Beispie-le sollen Regulaumlre Ausdruumlcke vorgestellt wer-den

Wie man eine Zeichenkette beschreibtWer sich bereits ein wenig mit Programmierungbeschaumlftigt hat wird mit groszliger Wahrscheinlich-keit schon einmal Regulaumlren Ausdruumlcken begeg-net sein Auf den ersten Blick wirken die Aus-druumlcke haumlufig recht kryptisch und abschreckendDabei ist nur wenig Aufwand noumltig um sich zu-mindest einige Grundlagen anzueignen

Regulaumlre Ausdruumlcke sind ndash vereinfacht gesagt ndashBeschreibungen von Zeichenketten Wer Regulauml-re Ausdruumlcke verwendet moumlchte also eine mehroder weniger definierte Zeichenkette finden bzwuumlberpruumlfen In Python lassen sich Regulaumlre Aus-druumlcke uumlber das Modul re anbinden [2]

Ein haumlufiges Beispiel ist das Auslesen einer IP-Adresse von einer Seite So bietet DynDNSorgeinen Service an der die derzeitige externeIP-Adresse eines Besuchers anzeigt [3] Dochwie liest man diese Adresse automatisiert ausHaumlufig reichen Methoden wie strfind() oderstrsplit() nicht aus um derartige Problemezu loumlsen Mit Regulaumlren Ausdruumlcken kann die ge-

suchte Zeichenkette beschrieben werden ohnegenaueres Wissen uumlber das bdquoUmfeldldquo zu benoumlti-gen

Im Fall von IPv4-Adressen wird eine Zeichenket-te gesucht die in der Regel aus vier Bloumlcken mitjeweils ein bis drei Ziffern besteht ndash getrennt vonPunkten Ein vereinfachter Regulaumlrer Ausdruckkoumlnnte diese Zeichenkette wie folgt beschreiben

[0-9]13[0-9]13[0-9]13[0-9]13

Vereinfacht ist dieser Ausdruck deshalb weil erauch Adressen wie 999999999999 akzeptie-ren wuumlrde was aber keine guumlltige IP-Adresseist Im Netz finden sich Beispiele fuumlr RegulaumlreAusdruumlcke die diesen Umstand beruumlcksichtigenndash lesbarer werden die Regulaumlren Ausdruumlcke da-durch allerdings nicht [4]

ZeichenkundeIn Regulaumlren Ausdruumlcken haben viele Zeichen ei-ne besondere Bedeutung ndash etwa die eckigen undgeschweiften Klammern oder auch der PunktDie grundlegenden Zeichen sollen im Folgendenkurz vorgestellt werden

Eckige Klammern []Eckige Klammern definieren in Regulaumlren Aus-druumlcken sogenannte Sets In den Klammernkann also ein Set von Zeichen definiert werdenauf die der Regulaumlre Ausdruck passen soll Wennetwa die Vokale a e i o und u in das Set aufge-

nommen werden sollen wuumlrde das Set so ausse-hen [aeiou] Im obigen Beispiel wird mit Hilfedes Minus-Zeichens ein sogenannter Bereich de-finiert [0-9] trifft also auf Zahlen von 0 bis 9 zuEs koumlnnen auch Bereiche uumlber Buchstaben gebil-det werden so trifft [a-z] auf die kleinen Buch-staben von a bis z zu Wichtig dabei Das Setdefiniert zunaumlchst nur welche Zeichen prinzipiell

gesucht sind Uumlber die Rei-henfolge und Anzahl wirdkeine Aussage getroffen

Geschweifte KlammernDie Anzahl der gesuchten Zeichen wird mit soge-nannten Quantifikatoren definiert Sie beziehensich immer auf den vorangegangenen Ausdruckim obigen Beispiel also das Set [0-9] Die ge-schweiften Klammern sind nur eine Art von Quan-tifikatoren Mit ihnen laumlsst sich sehr genau festle-gen welche Anzahl von Zeichen gesucht ist DerQuantifikator 13 besagt dass mindestens einund maximal drei Zeichen aus dem zuvor defi-nierten Set [0-9] gesucht werden Eine Varianteist der Quantifikator x der definiert dass genaux Zeichen aus dem zuvor definierten Set vorhan-den sein muumlssen

Der Punkt Auszligerhalb von Sets passt der Punkt auf jedes be-liebiges Zeichen ndash ausgenommen Zeilenumbruuml-che (wobei sich dieses Verhalten auch modifizie-ren laumlsst) Der Ausdruck 5 trifft also auf fuumlnf be-liebige Zeichen zu

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 9

PROGRAMMIERUNG

Stern und Plus +Bei Stern und Plus handelt es sich um soge-nannte vordefinierte Quantifikatoren Waumlhrendder Stern definiert dass 0 oder mehr Zeichendes vorherigen Ausdrucks gesucht werden de-finiert das Plus dass 1 oder mehr Zeichen ausdem vorherigen Ausdruck gesucht werden

Von Haus aus sind die beiden Quantifikatorenbdquogefraumlszligigldquo (engl greedy) Das heiszligt sie passenauf so viele Zeichen wie moumlglich Im folgendenBeispiel soll der Regulaumlre Ausdruck Pyon aufdie Zeichenkette Python passen

gtgtgt import regtgtgt text = Python Python Pythongtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Auf die genaue Syntax wird spaumlter noch ein-gegangen Auffaumlllig ist jedoch dass das Ergeb-nis nicht ndash wie vielleicht erwartet ndash die Zeichen-kette Python findet sondern die gesamte Zei-chenkette auf den Regulaumlren Ausdruck Pyonpasst Bei genauerer Betrachtung wird auch klarwarum Weil der Quantifikator gefraumlszligig ist wer-den so viele Zeichen wie moumlglich von dem Aus-druck konsumiert Entsprechend passt nichtnur Python auf den Ausdruck Pyon sondernauch die gesamte Zeichenkette ndash schlieszliglich be-ginnt auch die mit Py und endet mit on Um ge-fraumlszligige Quantifikatoren zu saumlttigen gibt es denFragezeichen-Quantifikator Alleinstehend stehtdas Fragezeichen fuumlr 0 oder 1 Vorkommen der

zuvor definierten Zeichen Steht es aber nach ei-nem gefraumlszligigen Quantifikator macht es diesengenuumlgsam (engl non-greedy)

gtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Hier gibt es ndash wie zu erwarten ndash drei Treffer

Die Escape-Sequenz Da die oben genannten Zeichen in RegulaumlrenAusdruumlcken eine Sonderfunktion haben ist derumgekehrte Schraumlgstrich als Escape-Sequenzdefiniert [5] Falls also tatsaumlchlich eine eckigeKlammer ein Punkt oder der Stern als Zeichenbenoumltigt werden muss ihnen in der Regel einumgekehrter Schraumlgstrich voran gestellt werdenDaher sind die Punkte in dem obigen RegulaumlrenAusdruck auch durch umgekehrte Schraumlgstrichemaskiert Es wird eben nicht der Punkt als vor-definierte Zeichenklasse benoumltigt sondern derPunkt als solcher Es gibt allerdings eine Ausnah-me Da viele Zeichen innerhalb von Sets (alsoinnerhalb von eckigen Klammern) ihre Sonderbe-deutung verlieren muumlssen sie hier nicht maskiertwerden Innerhalb eckiger Klammern stehen diemeisten Zeichen also fuumlr sich selbst - eine Aus-nahme ist das Minus-Zeichen - da es in SetsBereiche definiert ([0-9] oder [a-z]) Es mussin Sets maskiert werden wenn tatsaumlchlich dasMinus gemeint ist

Verwendung in PythonEin kleines Anwendungsbeispiel wurde obenschon beschrieben Zunaumlchst wurde dazu das

Modul re importiert Mit der Zeile pattern =recompile(rPyon) wurde ein sogenann-tes Pattern-Objekt erstellt und an den Namenpattern gebunden Dieses Objekt stellt ver-schiedene Methoden bereit um den RegulaumlrenAusdruck auf Zeichenketten anzuwenden Bevorauf diese Methoden naumlher eingegangen wird sollkurz auf eine kleine Besonderheit eingegangenwerden Der Zeichenkette die recompile alsParameter uumlbergeben wurde wurde ein r voran-gestellt Diese Notation ist von Unicode-Literalenin Python2 bekannt Aber was bedeutet das rEin Beispiel ist in diesem Fall sehr aufschluss-reich

Ein Regulaumlrer Ausdruck soll auf einen umgekehr-ten Schraumlgstrich passen Der erste Gedanke

gtgtgt rematch( )

ist schnell verworfen Da der Schraumlgstrichin Python-Zeichenketten als Escape-Sequenzdient wird dadurch nur das nachfolgende Anfuumlh-rungszeichen maskiert ndash ein Fehler tritt auf DieSchraumlgstriche muumlssen also jeweils maskiert wer-den

gtgtgt rematch( )

Auch dieses Vorgehen fuumlhrt zu einem FehlerJetzt handelt es sich zwar um guumlltige Python-Zeichenketten auf Ebene des Regulaumlren Aus-drucks steht dadurch jedoch wiederum nur eineinfacher Schraumlgstrich der ja in Regulaumlren Aus-druumlcken wiederum als Escape-Sequenz dient

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 10

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

KERNEL

VLANs (virtuell getrennte Subnetze) Quality ofService (Bandbreitensteuerung) Spanning TreeProtocol (STP eine Funktion zur Feststellungund Vermeidung von Schleifen im Netzwerk)und Bonding (Zusammenfassung mehrerer Netz-werkschnittstellen) und ermoumlglicht damit die rea-litaumltsnahe Anbindung virtueller Maschinen an einebenso virtuelles Netzwerk Apropos BondingAbseits virtueller Netzwerke bietet bdquoTeamingldquo nuneine weitere Moumlglichkeit mehrere physikalischeNetzwerkschnittstellen zu einer virtuellen zusam-menzufassen Im Gegensatz zu den schon laumln-ger verfuumlgbaren bdquoBondingldquo-Geraumlten lassen sichTeaming-Geraumlte im Kontext des Anwenders be-treiben

Entlastung fuumlr Systeme die mit Engpaumlssen desArbeitsspeichers zu kaumlmpfen haben versprichteine Funktion die den vom Netzwerk-Stack ge-nutzten Speicher begrenzt Auch ist es nun moumlg-lich den Netzwerkverkehr je nach Anwendungzu priorisieren was vor allem auf Servern vonInteresse sein duumlrfte Mit bdquoByte Queue Limitsldquosoll gegen Verzoumlgerungen von Netzwerkkommu-nikation vorgegangen werden die auf dem Zwi-schenpuffern von Netzwerkpaketen an den ein-zelnen Zwischenstationen der Kommunikations-strecke beruhen Die Groumlszlige der Puffer kann nunbegrenzt werden womit sich eine Moumlglichkeitzum Tuning der Einstellungen an Netzwerkgerauml-ten ergibt

Eine vollstaumlndige Auflistung aller Neuerungenund Treiber des neuen Linux-Kernels liefert dieenglischsprachige Seite Kernelnewbies [8]

Ausblick auf Linux 34Die Arbeiten an den Android-Treibern dauernan Ein paar Aumlnderungen wurden auch schon inden staging-Zweig uumlbernommen darunter haupt-saumlchlich Korrekturen [9] Auch fuumlr den freienNVIDIA-Grafiktreiber Nouveau zeichnet sich ei-ne Aumlnderung ab Der Hauptentwickler Dave Air-lie betrachtet das ABI die Schnittstelle uumlber dieAnwendungen auf den Treiber zugreifen koumln-nen mittlerweile als stabil Er hat darum gebe-ten dass Nouveau in Linux 34 entsprechendals stabiler Treiber gefuumlhrt wird nachdem er be-reits schon laumlnger von verschiedenen Distribu-tionen verwendet wird [10] In der gleichen E-Mail verkuumlndete Airlie auch die Unterstuumltzung fuumlrNVIDIAs neueste Chip-Generation Kepler [11]die vor allem Ben Skeggs zu verdanken ist

Unterstuumltzung fuumlr 2632Der betagte Kernel 2632 sollte eigentlich nach263258 nicht weiter mit Aktualisierungen ver-sorgt werden Dabei wurde diese Version sehrlange unterstuumltzt da sich schon sehr fruumlhdie Kernel-Entwickler die bei den verschiede-nen Distributoren auf den Gehaltslisten stan-den auf 2632 als Basis fuumlr ihre Unternehmens-Distributionen geeinigt hatten Da allerdings diegroszligen Spieler bereits auf Folgeversionen auf-gesprungen sind laumlsst Greg Kroah-Hartman dieUnterstuumltzung nun fallen und widmet sich nunder LTSI-Initiative der Linux Foundation [12] diedie Bereitstellung und Pflege von Kernelversio-nen uumlber lange Zeitraumlume hinweg zum Ziel hatDie Pflege des 2632 uumlbernimmt nun Willy Tar-

reau der Patches jedoch nur in laumlngeren Inter-vallen bereitstellen wird [13]

LINKS

[1] httpslkmlorglkml201233139[2] httpslkmlorglkml2012310158[3] httpslkmlorglkml2012318132[4] httpwwwfreiesmagazindefreiesMagazin-2010-

04[5] httpsdewikipediaorgwikiExtensible_

Firmware_Interface[6] httpsdewikipediaorgwikiRAID[7] httpsdewikipediaorgwikiSwitch_(Computer

technik)[8] httpkernelnewbiesorgLinux_33[9] httpwwwgolemdenewslinux-weitere-android-

patches-fuer-kernel-3-4-1203-90394html[10] httpwwwpro-linuxdenews118186nouveau-

treiber-verlaesst-experimentelles-stadiumhtml[11] httpsdewikipediaorgwikiNvidia-Geforce-600-

Serie[12] httpltsilinuxfoundationorg[13] httpwwwpro-linuxdenews118115linux-2632-

geht-in-die-verlaengerte-wartungsphasehtml

Autoreninformation

Mathias Menzer (Webseite) haumllteinen Blick auf die Entwicklung desLinux-Kernels und erfaumlhrt fruumlhzeitigDetails uumlber interessante Funktionen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 4

PROGRAMMIERUNG

Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie von Dominik Wagenfuumlhr

D er Begriff der objektorientierten Pro-grammierung (kurz OOP [1]) existiertschon eine ganze Weile Wer zuvor

prozedural programmiert hat erwischt sichbeim Uumlbergang zu OOP oumlfter dabei wie er diefruumlheren Funktionen einfach mit einer Klas-se umgibt und dies als objektorientierte Pro-grammierung verkauft Die Artikelreihe sollan einem einfachen Beispiel zeigen was manin so einem Fall besser machen koumlnnte

Hinweis Bevor man im Artikel fortfaumlhrt sollteman sich den vorherigen Teil der Reihe durchge-lesen haben (siehe bdquoObjektorientierte Program-mierung Teil 1ldquo freiesMagazin 032012 [2])

Die Wahl der richtigen StrategieEin sehr beliebtes und bekanntes Entwurfsmus-ter ist das Strategie-Muster [3] Es dient vorran-gig dazu verschiedene Verhalten als Klassenumzusetzen die von einer Basisklasse abgelei-tet sind bdquoAuszligenldquo nutzt man dann nur diese Basis-klasse die konkreten Strategien sind dem Nutzerunbekannt Zusaumltzlich ist es moumlglich zur Laufzeiteiner Klasse ein neues Verhalteneine neue Stra-tegie zu geben

Dies wurde ansatzweise auch schon in der letz-ten Umsetzung gemacht bei der jeder konkre-te Bot von einer Basisklasse BaseBot abgeleitetwar Ein groszliger Unterschied besteht aber darindass es damals kein Verhalten war dass man er-stellt hat sondern einen bestimmten Typ

DesignDas Strategie-Entwurfsmuster wird eins zu einsumgesetzt wie es von der bdquoGang of Fourldquo vorlanger Zeit definiert wurde Da die Basisklasse al-ler konkreten Strategien keinerlei Logik umfasstwird ein Interface [4] IStrategy benutzt

Der Bot enthaumllt dann dieses Interface als Strate-gie Hierfuumlr wurde eine Aggregation [5] gewaumlhltweil die Strategie auch ohne Bot existieren kann(und wird) da sie von Game erzeugt wird DerBot uumlbernimmt dann nur noch dessen Zerstoumlrungbeim Beenden

KlassenaufteilungKlasse IStrategyBenoumltigt -Verantwort Interface fuumlr die konkreten Stra-

tegien um ein Angebot anzuneh-men oder abzulehnen

Klasse AcceptStrategyBasisklasse IStrategyBenoumltigt -Verantwort nimmt ein Angebot immer an

Klasse DeclineStrategyBasisklasse IStrategyBenoumltigt -Verantwort lehnt ein Angebot immer ab

Klasse VariableStrategyBasisklasse IStrategyBenoumltigt -

Verantwort entscheidet variabel ob ein Ange-bot abgelehnt oder angenommenwird

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die angenommenen Punkte

Klasse GameBenoumltigt Bot VariableStrategy IStra

tegy AcceptStrategy DeclineStrategy

Verantwort erstellt den Bot und die richtigeStrategie dazu liest Benutzerein-gabe und fragt Bot nach Annah-me oder Ablehnung

AbhaumlngigkeitenDas Interface IStrategy und die konkreten Stra-tegien haben keine Abhaumlngigkeiten

Der Bot ist nur vom Interface IStrategy abhaumln-gig nicht aber von den konkreten Strategien

Da die Klasse Game die konkreten Strategien er-stellen muss haumlngt es von diesen auch ab Zu-saumltzlich erstellt sie auch den Bot und gibt dessenPunkte am Ende aus

Vor- und NachteileDas Design der Klasse Bot aumlhnelt sehr starkdem ersten Ansatz im ersten Teil Der groszlige Un-terschied ist dass die Strategie durch ein echtesObjekt und nicht nur durch einen String reprauml-sentiert werden muss Der Vorteil ist nun dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 5

PROGRAMMIERUNG

Das Strategie-Muster in der Umsetzung

der Bot dank des Strategie-Musters die konkre-ten Strategien nicht kennen muss und voumlllig los-geloumlst davon arbeiten kann Mit diesem Designhat man das Design-Prinzip bdquoProgrammiere ge-gen Schnittstellen nicht gegen Implementierun-genldquo umgesetzt

Auch hat der Bot nunwirklich nur eine Auf-gabe naumlmlich Punktezaumlhlen Die Entschei-dung ob ein Angebotangenommen oder ab-gelehnt wird muss erselbst nicht mehr tref-fen dies uumlbernimmt sei-ne gesetzte Strategie

Das Strategie-Musterhat auch den Vorteildass zusaumltzliche ganzandere Verhaltenswei-sen des Bots leicht er-gaumlnzt werden koumlnnenHaumltte der Bot zwei wei-tere Verhaltensartendie es in jeweils drei un-terschiedlichen Ausprauml-gungen gibt erweitertman die Klasse Bot umzwei Interfaces und fuumlgtinsgesamt acht neueKlassen (pro Verhaltenein Interface und dreiRealisierungen) hinzu

Der Nachteil der Erweiterbarkeit bleibt aber nachwie vor Es ist zwar extrem leicht eine neueStrategie zu realisieren und diese dem Bot un-terzuschieben aber dennoch muss die KlasseGame alle konkreten Strategien kennen Wird ei-ne neue Strategie hinzugefuumlgt muss auch Game

angepasst werden Das ist also immer noch nichtdie ultimative Loumlsung

ImplementierungDie C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop3-beispieltargz

Die Erschaffung einer StrategieEin Nachteil der obigen Umsetzung ist dass dieKlasse Game von allen konkreten Strategien ab-haumlngt weil sie diese erstellen muss Diese Auf-gabe soll nun an eine Klasse uumlbergeben werdenderen einzige Aufgabe die Erstellung von Stra-tegien sein soll Hierfuumlr bedient man sich desFabrik-Musters (Factory-Pattern)

Von diesem Pattern gibt es drei Auspraumlgungenzum einen die Fabrik-Methode [6] dann die Ab-strakte Fabrik [7] und die Einfache Fabrik [8] Fuumlrdie Anwendung hier soll eine Einfache Fabrik ge-nutzt werden

DesignDie Umsetzung des Einfache-Fabrik-Musters istrecht simpel Das was vorher die Klasse Gamein der Methode start erledigt wird in einestatische Methode create der neuen KlasseStrategyFactory ausgelagert Game nutzt danndiese neue Klasse

Man haumltte auch auf die statische Methode ver-zichten und in der Methode start der Klas-se Game jedes Mal eine neue Instanz vonStrategyFactory erstellen koumlnnen Auch haumlt-te die Fabrik als Attribut von Game umgesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 6

PROGRAMMIERUNG

Die Einfache Fabrik erzeugt verschiedene Strategien

werden koumlnnen Es gibt keineGruumlnde dies nicht auch so zutun

KlassenaufteilungAn den CRC-Karten fuumlr die Stra-tegien hat sich nichts geaumlndertsodass diese hier nicht noch ein-mal dargestellt werden sollen

Klasse StrategyFactoryBenoumltigt IStrategy

VariableStrategyAcceptStrategyDeclineStrategy

Verantwort erstellt die richti-ge Strategie (jenach Konsolenpa-rameter)

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die ange-

nommenen Punk-te

Klasse GameBenoumltigt StrategyFactory

BotVerantwort erstellt den Bot

und setzt die vonder Fabrik erzeug-te Strategie liest Benutzereinga-be fragt Bot nach Annahme oderAblehnung

AbhaumlngigkeitenDie Klasse StrategyFactory ist von allen kon-kreten Strategien abhaumlngig da sie diese erzeugt

Durch diese Abstraktion ist die Ab-haumlngigkeit von Game zu den Strate-gien aber verschwunden

Vor- und NachteileWas ist der Vorteil der FabrikDie Klasse Game ist nun viel un-abhaumlngiger Egal ob neue Strate-gien hinzugefuumlgt werden oder al-te sich aumlndern die Klasse Gameund somit die Bibliothek libgamemuss nicht neu erstellt werdenDer Code ist also gut gekapseltund laumlsst sich so einfach erweiternund warten Mit diesem Designhat man das Design-Prinzip bdquoKap-sele was sich veraumlndertldquo gut um-gesetzt

Dennoch ist es eher schlechtdass die StrategyFactory je-des Mal angepasst werden musswenn eine neue Strategie hinzuge-fuumlgt wird Das laumlsst sich also nochverbessern

ImplementierungJe nach Sprache kann man dieEinfache Fabrik auf verschiede-ne Arten umsetzen Selbst in C++kann man den Code auf vieleverschiedene Weisen erstellen Inder Beispielimplementierung wur-

de sich fuumlr eine einfache Loumlsung entschiedenbei der die drei konkreten Strategien in einem as-soziativen Array gespeichert werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 7

PROGRAMMIERUNG

Diese Loumlsung entspricht in etwa auchdem Endprodukt beim freiesMagazin-Programmierwettbewerb [9] Sie hatte den Vor-teil dass Teilnehmer die StrategyFactory nuran zwei Stellen anpassen mussten Zum einenmusste das assoziative Array erweitert wer-den zum anderen musste natuumlrlich die neueStrategie-Header-Datei inkludiert werden

Die C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop4-beispieltargz

AusblickDerzeit nutzt die Klasse Game die statischen Ope-rationen der StrategyFactory Im naumlchsten Teil

lernt man ein Muster kennen welches diesesKonzept etwas verbessert

LINKS

[1] httpssecurewikimediaorgwikipediadewikiObjektorientierte_Programmierung

[2] httpwwwfreiesmagazindefreiesMagazin-2012-03

[3] httpsdewikipediaorgwikiStrategie_(Entwurfsmuster)

[4] httpsdewikipediaorgwikiSchnittstelle_(Programmierung)

[5] httpsdewikipediaorgwikiAssoziation_(UML)Aggregation

[6] httpsdewikipediaorgwikiFabrikmethode

[7] httpsdewikipediaorgwikiAbstrakte_Fabrik[8] httpwwwoodesigncomfactory-patternhtml[9] httpwwwfreiesmagazinde20111001-vierter-

freiesmagazin-programmierwettbewerb-gestartet

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istC++-Software-Entwickler und hattaumlglich mit Software-Design zu tun

Diesen Artikel kommentieren

bdquoQwertial Aphasialdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom604

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 8

PROGRAMMIERUNG

Python ndash Teil 12 Regulaumlre Ausdruumlcke von Daniel Noumlgel

N achdem im letzten Teil (siehe bdquoPy-thon ndash Teil 11 Zwitschern in Schwarz-Weiszligldquo freiesMagazin 022012 [1]) die-

ser Reihe ein kleiner Twitter-Client bespro-chen wurde wird es nun wieder etwas theo-retischer Anhand einiger einfacher Beispie-le sollen Regulaumlre Ausdruumlcke vorgestellt wer-den

Wie man eine Zeichenkette beschreibtWer sich bereits ein wenig mit Programmierungbeschaumlftigt hat wird mit groszliger Wahrscheinlich-keit schon einmal Regulaumlren Ausdruumlcken begeg-net sein Auf den ersten Blick wirken die Aus-druumlcke haumlufig recht kryptisch und abschreckendDabei ist nur wenig Aufwand noumltig um sich zu-mindest einige Grundlagen anzueignen

Regulaumlre Ausdruumlcke sind ndash vereinfacht gesagt ndashBeschreibungen von Zeichenketten Wer Regulauml-re Ausdruumlcke verwendet moumlchte also eine mehroder weniger definierte Zeichenkette finden bzwuumlberpruumlfen In Python lassen sich Regulaumlre Aus-druumlcke uumlber das Modul re anbinden [2]

Ein haumlufiges Beispiel ist das Auslesen einer IP-Adresse von einer Seite So bietet DynDNSorgeinen Service an der die derzeitige externeIP-Adresse eines Besuchers anzeigt [3] Dochwie liest man diese Adresse automatisiert ausHaumlufig reichen Methoden wie strfind() oderstrsplit() nicht aus um derartige Problemezu loumlsen Mit Regulaumlren Ausdruumlcken kann die ge-

suchte Zeichenkette beschrieben werden ohnegenaueres Wissen uumlber das bdquoUmfeldldquo zu benoumlti-gen

Im Fall von IPv4-Adressen wird eine Zeichenket-te gesucht die in der Regel aus vier Bloumlcken mitjeweils ein bis drei Ziffern besteht ndash getrennt vonPunkten Ein vereinfachter Regulaumlrer Ausdruckkoumlnnte diese Zeichenkette wie folgt beschreiben

[0-9]13[0-9]13[0-9]13[0-9]13

Vereinfacht ist dieser Ausdruck deshalb weil erauch Adressen wie 999999999999 akzeptie-ren wuumlrde was aber keine guumlltige IP-Adresseist Im Netz finden sich Beispiele fuumlr RegulaumlreAusdruumlcke die diesen Umstand beruumlcksichtigenndash lesbarer werden die Regulaumlren Ausdruumlcke da-durch allerdings nicht [4]

ZeichenkundeIn Regulaumlren Ausdruumlcken haben viele Zeichen ei-ne besondere Bedeutung ndash etwa die eckigen undgeschweiften Klammern oder auch der PunktDie grundlegenden Zeichen sollen im Folgendenkurz vorgestellt werden

Eckige Klammern []Eckige Klammern definieren in Regulaumlren Aus-druumlcken sogenannte Sets In den Klammernkann also ein Set von Zeichen definiert werdenauf die der Regulaumlre Ausdruck passen soll Wennetwa die Vokale a e i o und u in das Set aufge-

nommen werden sollen wuumlrde das Set so ausse-hen [aeiou] Im obigen Beispiel wird mit Hilfedes Minus-Zeichens ein sogenannter Bereich de-finiert [0-9] trifft also auf Zahlen von 0 bis 9 zuEs koumlnnen auch Bereiche uumlber Buchstaben gebil-det werden so trifft [a-z] auf die kleinen Buch-staben von a bis z zu Wichtig dabei Das Setdefiniert zunaumlchst nur welche Zeichen prinzipiell

gesucht sind Uumlber die Rei-henfolge und Anzahl wirdkeine Aussage getroffen

Geschweifte KlammernDie Anzahl der gesuchten Zeichen wird mit soge-nannten Quantifikatoren definiert Sie beziehensich immer auf den vorangegangenen Ausdruckim obigen Beispiel also das Set [0-9] Die ge-schweiften Klammern sind nur eine Art von Quan-tifikatoren Mit ihnen laumlsst sich sehr genau festle-gen welche Anzahl von Zeichen gesucht ist DerQuantifikator 13 besagt dass mindestens einund maximal drei Zeichen aus dem zuvor defi-nierten Set [0-9] gesucht werden Eine Varianteist der Quantifikator x der definiert dass genaux Zeichen aus dem zuvor definierten Set vorhan-den sein muumlssen

Der Punkt Auszligerhalb von Sets passt der Punkt auf jedes be-liebiges Zeichen ndash ausgenommen Zeilenumbruuml-che (wobei sich dieses Verhalten auch modifizie-ren laumlsst) Der Ausdruck 5 trifft also auf fuumlnf be-liebige Zeichen zu

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 9

PROGRAMMIERUNG

Stern und Plus +Bei Stern und Plus handelt es sich um soge-nannte vordefinierte Quantifikatoren Waumlhrendder Stern definiert dass 0 oder mehr Zeichendes vorherigen Ausdrucks gesucht werden de-finiert das Plus dass 1 oder mehr Zeichen ausdem vorherigen Ausdruck gesucht werden

Von Haus aus sind die beiden Quantifikatorenbdquogefraumlszligigldquo (engl greedy) Das heiszligt sie passenauf so viele Zeichen wie moumlglich Im folgendenBeispiel soll der Regulaumlre Ausdruck Pyon aufdie Zeichenkette Python passen

gtgtgt import regtgtgt text = Python Python Pythongtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Auf die genaue Syntax wird spaumlter noch ein-gegangen Auffaumlllig ist jedoch dass das Ergeb-nis nicht ndash wie vielleicht erwartet ndash die Zeichen-kette Python findet sondern die gesamte Zei-chenkette auf den Regulaumlren Ausdruck Pyonpasst Bei genauerer Betrachtung wird auch klarwarum Weil der Quantifikator gefraumlszligig ist wer-den so viele Zeichen wie moumlglich von dem Aus-druck konsumiert Entsprechend passt nichtnur Python auf den Ausdruck Pyon sondernauch die gesamte Zeichenkette ndash schlieszliglich be-ginnt auch die mit Py und endet mit on Um ge-fraumlszligige Quantifikatoren zu saumlttigen gibt es denFragezeichen-Quantifikator Alleinstehend stehtdas Fragezeichen fuumlr 0 oder 1 Vorkommen der

zuvor definierten Zeichen Steht es aber nach ei-nem gefraumlszligigen Quantifikator macht es diesengenuumlgsam (engl non-greedy)

gtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Hier gibt es ndash wie zu erwarten ndash drei Treffer

Die Escape-Sequenz Da die oben genannten Zeichen in RegulaumlrenAusdruumlcken eine Sonderfunktion haben ist derumgekehrte Schraumlgstrich als Escape-Sequenzdefiniert [5] Falls also tatsaumlchlich eine eckigeKlammer ein Punkt oder der Stern als Zeichenbenoumltigt werden muss ihnen in der Regel einumgekehrter Schraumlgstrich voran gestellt werdenDaher sind die Punkte in dem obigen RegulaumlrenAusdruck auch durch umgekehrte Schraumlgstrichemaskiert Es wird eben nicht der Punkt als vor-definierte Zeichenklasse benoumltigt sondern derPunkt als solcher Es gibt allerdings eine Ausnah-me Da viele Zeichen innerhalb von Sets (alsoinnerhalb von eckigen Klammern) ihre Sonderbe-deutung verlieren muumlssen sie hier nicht maskiertwerden Innerhalb eckiger Klammern stehen diemeisten Zeichen also fuumlr sich selbst - eine Aus-nahme ist das Minus-Zeichen - da es in SetsBereiche definiert ([0-9] oder [a-z]) Es mussin Sets maskiert werden wenn tatsaumlchlich dasMinus gemeint ist

Verwendung in PythonEin kleines Anwendungsbeispiel wurde obenschon beschrieben Zunaumlchst wurde dazu das

Modul re importiert Mit der Zeile pattern =recompile(rPyon) wurde ein sogenann-tes Pattern-Objekt erstellt und an den Namenpattern gebunden Dieses Objekt stellt ver-schiedene Methoden bereit um den RegulaumlrenAusdruck auf Zeichenketten anzuwenden Bevorauf diese Methoden naumlher eingegangen wird sollkurz auf eine kleine Besonderheit eingegangenwerden Der Zeichenkette die recompile alsParameter uumlbergeben wurde wurde ein r voran-gestellt Diese Notation ist von Unicode-Literalenin Python2 bekannt Aber was bedeutet das rEin Beispiel ist in diesem Fall sehr aufschluss-reich

Ein Regulaumlrer Ausdruck soll auf einen umgekehr-ten Schraumlgstrich passen Der erste Gedanke

gtgtgt rematch( )

ist schnell verworfen Da der Schraumlgstrichin Python-Zeichenketten als Escape-Sequenzdient wird dadurch nur das nachfolgende Anfuumlh-rungszeichen maskiert ndash ein Fehler tritt auf DieSchraumlgstriche muumlssen also jeweils maskiert wer-den

gtgtgt rematch( )

Auch dieses Vorgehen fuumlhrt zu einem FehlerJetzt handelt es sich zwar um guumlltige Python-Zeichenketten auf Ebene des Regulaumlren Aus-drucks steht dadurch jedoch wiederum nur eineinfacher Schraumlgstrich der ja in Regulaumlren Aus-druumlcken wiederum als Escape-Sequenz dient

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 10

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie von Dominik Wagenfuumlhr

D er Begriff der objektorientierten Pro-grammierung (kurz OOP [1]) existiertschon eine ganze Weile Wer zuvor

prozedural programmiert hat erwischt sichbeim Uumlbergang zu OOP oumlfter dabei wie er diefruumlheren Funktionen einfach mit einer Klas-se umgibt und dies als objektorientierte Pro-grammierung verkauft Die Artikelreihe sollan einem einfachen Beispiel zeigen was manin so einem Fall besser machen koumlnnte

Hinweis Bevor man im Artikel fortfaumlhrt sollteman sich den vorherigen Teil der Reihe durchge-lesen haben (siehe bdquoObjektorientierte Program-mierung Teil 1ldquo freiesMagazin 032012 [2])

Die Wahl der richtigen StrategieEin sehr beliebtes und bekanntes Entwurfsmus-ter ist das Strategie-Muster [3] Es dient vorran-gig dazu verschiedene Verhalten als Klassenumzusetzen die von einer Basisklasse abgelei-tet sind bdquoAuszligenldquo nutzt man dann nur diese Basis-klasse die konkreten Strategien sind dem Nutzerunbekannt Zusaumltzlich ist es moumlglich zur Laufzeiteiner Klasse ein neues Verhalteneine neue Stra-tegie zu geben

Dies wurde ansatzweise auch schon in der letz-ten Umsetzung gemacht bei der jeder konkre-te Bot von einer Basisklasse BaseBot abgeleitetwar Ein groszliger Unterschied besteht aber darindass es damals kein Verhalten war dass man er-stellt hat sondern einen bestimmten Typ

DesignDas Strategie-Entwurfsmuster wird eins zu einsumgesetzt wie es von der bdquoGang of Fourldquo vorlanger Zeit definiert wurde Da die Basisklasse al-ler konkreten Strategien keinerlei Logik umfasstwird ein Interface [4] IStrategy benutzt

Der Bot enthaumllt dann dieses Interface als Strate-gie Hierfuumlr wurde eine Aggregation [5] gewaumlhltweil die Strategie auch ohne Bot existieren kann(und wird) da sie von Game erzeugt wird DerBot uumlbernimmt dann nur noch dessen Zerstoumlrungbeim Beenden

KlassenaufteilungKlasse IStrategyBenoumltigt -Verantwort Interface fuumlr die konkreten Stra-

tegien um ein Angebot anzuneh-men oder abzulehnen

Klasse AcceptStrategyBasisklasse IStrategyBenoumltigt -Verantwort nimmt ein Angebot immer an

Klasse DeclineStrategyBasisklasse IStrategyBenoumltigt -Verantwort lehnt ein Angebot immer ab

Klasse VariableStrategyBasisklasse IStrategyBenoumltigt -

Verantwort entscheidet variabel ob ein Ange-bot abgelehnt oder angenommenwird

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die angenommenen Punkte

Klasse GameBenoumltigt Bot VariableStrategy IStra

tegy AcceptStrategy DeclineStrategy

Verantwort erstellt den Bot und die richtigeStrategie dazu liest Benutzerein-gabe und fragt Bot nach Annah-me oder Ablehnung

AbhaumlngigkeitenDas Interface IStrategy und die konkreten Stra-tegien haben keine Abhaumlngigkeiten

Der Bot ist nur vom Interface IStrategy abhaumln-gig nicht aber von den konkreten Strategien

Da die Klasse Game die konkreten Strategien er-stellen muss haumlngt es von diesen auch ab Zu-saumltzlich erstellt sie auch den Bot und gibt dessenPunkte am Ende aus

Vor- und NachteileDas Design der Klasse Bot aumlhnelt sehr starkdem ersten Ansatz im ersten Teil Der groszlige Un-terschied ist dass die Strategie durch ein echtesObjekt und nicht nur durch einen String reprauml-sentiert werden muss Der Vorteil ist nun dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 5

PROGRAMMIERUNG

Das Strategie-Muster in der Umsetzung

der Bot dank des Strategie-Musters die konkre-ten Strategien nicht kennen muss und voumlllig los-geloumlst davon arbeiten kann Mit diesem Designhat man das Design-Prinzip bdquoProgrammiere ge-gen Schnittstellen nicht gegen Implementierun-genldquo umgesetzt

Auch hat der Bot nunwirklich nur eine Auf-gabe naumlmlich Punktezaumlhlen Die Entschei-dung ob ein Angebotangenommen oder ab-gelehnt wird muss erselbst nicht mehr tref-fen dies uumlbernimmt sei-ne gesetzte Strategie

Das Strategie-Musterhat auch den Vorteildass zusaumltzliche ganzandere Verhaltenswei-sen des Bots leicht er-gaumlnzt werden koumlnnenHaumltte der Bot zwei wei-tere Verhaltensartendie es in jeweils drei un-terschiedlichen Ausprauml-gungen gibt erweitertman die Klasse Bot umzwei Interfaces und fuumlgtinsgesamt acht neueKlassen (pro Verhaltenein Interface und dreiRealisierungen) hinzu

Der Nachteil der Erweiterbarkeit bleibt aber nachwie vor Es ist zwar extrem leicht eine neueStrategie zu realisieren und diese dem Bot un-terzuschieben aber dennoch muss die KlasseGame alle konkreten Strategien kennen Wird ei-ne neue Strategie hinzugefuumlgt muss auch Game

angepasst werden Das ist also immer noch nichtdie ultimative Loumlsung

ImplementierungDie C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop3-beispieltargz

Die Erschaffung einer StrategieEin Nachteil der obigen Umsetzung ist dass dieKlasse Game von allen konkreten Strategien ab-haumlngt weil sie diese erstellen muss Diese Auf-gabe soll nun an eine Klasse uumlbergeben werdenderen einzige Aufgabe die Erstellung von Stra-tegien sein soll Hierfuumlr bedient man sich desFabrik-Musters (Factory-Pattern)

Von diesem Pattern gibt es drei Auspraumlgungenzum einen die Fabrik-Methode [6] dann die Ab-strakte Fabrik [7] und die Einfache Fabrik [8] Fuumlrdie Anwendung hier soll eine Einfache Fabrik ge-nutzt werden

DesignDie Umsetzung des Einfache-Fabrik-Musters istrecht simpel Das was vorher die Klasse Gamein der Methode start erledigt wird in einestatische Methode create der neuen KlasseStrategyFactory ausgelagert Game nutzt danndiese neue Klasse

Man haumltte auch auf die statische Methode ver-zichten und in der Methode start der Klas-se Game jedes Mal eine neue Instanz vonStrategyFactory erstellen koumlnnen Auch haumlt-te die Fabrik als Attribut von Game umgesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 6

PROGRAMMIERUNG

Die Einfache Fabrik erzeugt verschiedene Strategien

werden koumlnnen Es gibt keineGruumlnde dies nicht auch so zutun

KlassenaufteilungAn den CRC-Karten fuumlr die Stra-tegien hat sich nichts geaumlndertsodass diese hier nicht noch ein-mal dargestellt werden sollen

Klasse StrategyFactoryBenoumltigt IStrategy

VariableStrategyAcceptStrategyDeclineStrategy

Verantwort erstellt die richti-ge Strategie (jenach Konsolenpa-rameter)

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die ange-

nommenen Punk-te

Klasse GameBenoumltigt StrategyFactory

BotVerantwort erstellt den Bot

und setzt die vonder Fabrik erzeug-te Strategie liest Benutzereinga-be fragt Bot nach Annahme oderAblehnung

AbhaumlngigkeitenDie Klasse StrategyFactory ist von allen kon-kreten Strategien abhaumlngig da sie diese erzeugt

Durch diese Abstraktion ist die Ab-haumlngigkeit von Game zu den Strate-gien aber verschwunden

Vor- und NachteileWas ist der Vorteil der FabrikDie Klasse Game ist nun viel un-abhaumlngiger Egal ob neue Strate-gien hinzugefuumlgt werden oder al-te sich aumlndern die Klasse Gameund somit die Bibliothek libgamemuss nicht neu erstellt werdenDer Code ist also gut gekapseltund laumlsst sich so einfach erweiternund warten Mit diesem Designhat man das Design-Prinzip bdquoKap-sele was sich veraumlndertldquo gut um-gesetzt

Dennoch ist es eher schlechtdass die StrategyFactory je-des Mal angepasst werden musswenn eine neue Strategie hinzuge-fuumlgt wird Das laumlsst sich also nochverbessern

ImplementierungJe nach Sprache kann man dieEinfache Fabrik auf verschiede-ne Arten umsetzen Selbst in C++kann man den Code auf vieleverschiedene Weisen erstellen Inder Beispielimplementierung wur-

de sich fuumlr eine einfache Loumlsung entschiedenbei der die drei konkreten Strategien in einem as-soziativen Array gespeichert werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 7

PROGRAMMIERUNG

Diese Loumlsung entspricht in etwa auchdem Endprodukt beim freiesMagazin-Programmierwettbewerb [9] Sie hatte den Vor-teil dass Teilnehmer die StrategyFactory nuran zwei Stellen anpassen mussten Zum einenmusste das assoziative Array erweitert wer-den zum anderen musste natuumlrlich die neueStrategie-Header-Datei inkludiert werden

Die C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop4-beispieltargz

AusblickDerzeit nutzt die Klasse Game die statischen Ope-rationen der StrategyFactory Im naumlchsten Teil

lernt man ein Muster kennen welches diesesKonzept etwas verbessert

LINKS

[1] httpssecurewikimediaorgwikipediadewikiObjektorientierte_Programmierung

[2] httpwwwfreiesmagazindefreiesMagazin-2012-03

[3] httpsdewikipediaorgwikiStrategie_(Entwurfsmuster)

[4] httpsdewikipediaorgwikiSchnittstelle_(Programmierung)

[5] httpsdewikipediaorgwikiAssoziation_(UML)Aggregation

[6] httpsdewikipediaorgwikiFabrikmethode

[7] httpsdewikipediaorgwikiAbstrakte_Fabrik[8] httpwwwoodesigncomfactory-patternhtml[9] httpwwwfreiesmagazinde20111001-vierter-

freiesmagazin-programmierwettbewerb-gestartet

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istC++-Software-Entwickler und hattaumlglich mit Software-Design zu tun

Diesen Artikel kommentieren

bdquoQwertial Aphasialdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom604

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 8

PROGRAMMIERUNG

Python ndash Teil 12 Regulaumlre Ausdruumlcke von Daniel Noumlgel

N achdem im letzten Teil (siehe bdquoPy-thon ndash Teil 11 Zwitschern in Schwarz-Weiszligldquo freiesMagazin 022012 [1]) die-

ser Reihe ein kleiner Twitter-Client bespro-chen wurde wird es nun wieder etwas theo-retischer Anhand einiger einfacher Beispie-le sollen Regulaumlre Ausdruumlcke vorgestellt wer-den

Wie man eine Zeichenkette beschreibtWer sich bereits ein wenig mit Programmierungbeschaumlftigt hat wird mit groszliger Wahrscheinlich-keit schon einmal Regulaumlren Ausdruumlcken begeg-net sein Auf den ersten Blick wirken die Aus-druumlcke haumlufig recht kryptisch und abschreckendDabei ist nur wenig Aufwand noumltig um sich zu-mindest einige Grundlagen anzueignen

Regulaumlre Ausdruumlcke sind ndash vereinfacht gesagt ndashBeschreibungen von Zeichenketten Wer Regulauml-re Ausdruumlcke verwendet moumlchte also eine mehroder weniger definierte Zeichenkette finden bzwuumlberpruumlfen In Python lassen sich Regulaumlre Aus-druumlcke uumlber das Modul re anbinden [2]

Ein haumlufiges Beispiel ist das Auslesen einer IP-Adresse von einer Seite So bietet DynDNSorgeinen Service an der die derzeitige externeIP-Adresse eines Besuchers anzeigt [3] Dochwie liest man diese Adresse automatisiert ausHaumlufig reichen Methoden wie strfind() oderstrsplit() nicht aus um derartige Problemezu loumlsen Mit Regulaumlren Ausdruumlcken kann die ge-

suchte Zeichenkette beschrieben werden ohnegenaueres Wissen uumlber das bdquoUmfeldldquo zu benoumlti-gen

Im Fall von IPv4-Adressen wird eine Zeichenket-te gesucht die in der Regel aus vier Bloumlcken mitjeweils ein bis drei Ziffern besteht ndash getrennt vonPunkten Ein vereinfachter Regulaumlrer Ausdruckkoumlnnte diese Zeichenkette wie folgt beschreiben

[0-9]13[0-9]13[0-9]13[0-9]13

Vereinfacht ist dieser Ausdruck deshalb weil erauch Adressen wie 999999999999 akzeptie-ren wuumlrde was aber keine guumlltige IP-Adresseist Im Netz finden sich Beispiele fuumlr RegulaumlreAusdruumlcke die diesen Umstand beruumlcksichtigenndash lesbarer werden die Regulaumlren Ausdruumlcke da-durch allerdings nicht [4]

ZeichenkundeIn Regulaumlren Ausdruumlcken haben viele Zeichen ei-ne besondere Bedeutung ndash etwa die eckigen undgeschweiften Klammern oder auch der PunktDie grundlegenden Zeichen sollen im Folgendenkurz vorgestellt werden

Eckige Klammern []Eckige Klammern definieren in Regulaumlren Aus-druumlcken sogenannte Sets In den Klammernkann also ein Set von Zeichen definiert werdenauf die der Regulaumlre Ausdruck passen soll Wennetwa die Vokale a e i o und u in das Set aufge-

nommen werden sollen wuumlrde das Set so ausse-hen [aeiou] Im obigen Beispiel wird mit Hilfedes Minus-Zeichens ein sogenannter Bereich de-finiert [0-9] trifft also auf Zahlen von 0 bis 9 zuEs koumlnnen auch Bereiche uumlber Buchstaben gebil-det werden so trifft [a-z] auf die kleinen Buch-staben von a bis z zu Wichtig dabei Das Setdefiniert zunaumlchst nur welche Zeichen prinzipiell

gesucht sind Uumlber die Rei-henfolge und Anzahl wirdkeine Aussage getroffen

Geschweifte KlammernDie Anzahl der gesuchten Zeichen wird mit soge-nannten Quantifikatoren definiert Sie beziehensich immer auf den vorangegangenen Ausdruckim obigen Beispiel also das Set [0-9] Die ge-schweiften Klammern sind nur eine Art von Quan-tifikatoren Mit ihnen laumlsst sich sehr genau festle-gen welche Anzahl von Zeichen gesucht ist DerQuantifikator 13 besagt dass mindestens einund maximal drei Zeichen aus dem zuvor defi-nierten Set [0-9] gesucht werden Eine Varianteist der Quantifikator x der definiert dass genaux Zeichen aus dem zuvor definierten Set vorhan-den sein muumlssen

Der Punkt Auszligerhalb von Sets passt der Punkt auf jedes be-liebiges Zeichen ndash ausgenommen Zeilenumbruuml-che (wobei sich dieses Verhalten auch modifizie-ren laumlsst) Der Ausdruck 5 trifft also auf fuumlnf be-liebige Zeichen zu

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 9

PROGRAMMIERUNG

Stern und Plus +Bei Stern und Plus handelt es sich um soge-nannte vordefinierte Quantifikatoren Waumlhrendder Stern definiert dass 0 oder mehr Zeichendes vorherigen Ausdrucks gesucht werden de-finiert das Plus dass 1 oder mehr Zeichen ausdem vorherigen Ausdruck gesucht werden

Von Haus aus sind die beiden Quantifikatorenbdquogefraumlszligigldquo (engl greedy) Das heiszligt sie passenauf so viele Zeichen wie moumlglich Im folgendenBeispiel soll der Regulaumlre Ausdruck Pyon aufdie Zeichenkette Python passen

gtgtgt import regtgtgt text = Python Python Pythongtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Auf die genaue Syntax wird spaumlter noch ein-gegangen Auffaumlllig ist jedoch dass das Ergeb-nis nicht ndash wie vielleicht erwartet ndash die Zeichen-kette Python findet sondern die gesamte Zei-chenkette auf den Regulaumlren Ausdruck Pyonpasst Bei genauerer Betrachtung wird auch klarwarum Weil der Quantifikator gefraumlszligig ist wer-den so viele Zeichen wie moumlglich von dem Aus-druck konsumiert Entsprechend passt nichtnur Python auf den Ausdruck Pyon sondernauch die gesamte Zeichenkette ndash schlieszliglich be-ginnt auch die mit Py und endet mit on Um ge-fraumlszligige Quantifikatoren zu saumlttigen gibt es denFragezeichen-Quantifikator Alleinstehend stehtdas Fragezeichen fuumlr 0 oder 1 Vorkommen der

zuvor definierten Zeichen Steht es aber nach ei-nem gefraumlszligigen Quantifikator macht es diesengenuumlgsam (engl non-greedy)

gtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Hier gibt es ndash wie zu erwarten ndash drei Treffer

Die Escape-Sequenz Da die oben genannten Zeichen in RegulaumlrenAusdruumlcken eine Sonderfunktion haben ist derumgekehrte Schraumlgstrich als Escape-Sequenzdefiniert [5] Falls also tatsaumlchlich eine eckigeKlammer ein Punkt oder der Stern als Zeichenbenoumltigt werden muss ihnen in der Regel einumgekehrter Schraumlgstrich voran gestellt werdenDaher sind die Punkte in dem obigen RegulaumlrenAusdruck auch durch umgekehrte Schraumlgstrichemaskiert Es wird eben nicht der Punkt als vor-definierte Zeichenklasse benoumltigt sondern derPunkt als solcher Es gibt allerdings eine Ausnah-me Da viele Zeichen innerhalb von Sets (alsoinnerhalb von eckigen Klammern) ihre Sonderbe-deutung verlieren muumlssen sie hier nicht maskiertwerden Innerhalb eckiger Klammern stehen diemeisten Zeichen also fuumlr sich selbst - eine Aus-nahme ist das Minus-Zeichen - da es in SetsBereiche definiert ([0-9] oder [a-z]) Es mussin Sets maskiert werden wenn tatsaumlchlich dasMinus gemeint ist

Verwendung in PythonEin kleines Anwendungsbeispiel wurde obenschon beschrieben Zunaumlchst wurde dazu das

Modul re importiert Mit der Zeile pattern =recompile(rPyon) wurde ein sogenann-tes Pattern-Objekt erstellt und an den Namenpattern gebunden Dieses Objekt stellt ver-schiedene Methoden bereit um den RegulaumlrenAusdruck auf Zeichenketten anzuwenden Bevorauf diese Methoden naumlher eingegangen wird sollkurz auf eine kleine Besonderheit eingegangenwerden Der Zeichenkette die recompile alsParameter uumlbergeben wurde wurde ein r voran-gestellt Diese Notation ist von Unicode-Literalenin Python2 bekannt Aber was bedeutet das rEin Beispiel ist in diesem Fall sehr aufschluss-reich

Ein Regulaumlrer Ausdruck soll auf einen umgekehr-ten Schraumlgstrich passen Der erste Gedanke

gtgtgt rematch( )

ist schnell verworfen Da der Schraumlgstrichin Python-Zeichenketten als Escape-Sequenzdient wird dadurch nur das nachfolgende Anfuumlh-rungszeichen maskiert ndash ein Fehler tritt auf DieSchraumlgstriche muumlssen also jeweils maskiert wer-den

gtgtgt rematch( )

Auch dieses Vorgehen fuumlhrt zu einem FehlerJetzt handelt es sich zwar um guumlltige Python-Zeichenketten auf Ebene des Regulaumlren Aus-drucks steht dadurch jedoch wiederum nur eineinfacher Schraumlgstrich der ja in Regulaumlren Aus-druumlcken wiederum als Escape-Sequenz dient

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 10

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Das Strategie-Muster in der Umsetzung

der Bot dank des Strategie-Musters die konkre-ten Strategien nicht kennen muss und voumlllig los-geloumlst davon arbeiten kann Mit diesem Designhat man das Design-Prinzip bdquoProgrammiere ge-gen Schnittstellen nicht gegen Implementierun-genldquo umgesetzt

Auch hat der Bot nunwirklich nur eine Auf-gabe naumlmlich Punktezaumlhlen Die Entschei-dung ob ein Angebotangenommen oder ab-gelehnt wird muss erselbst nicht mehr tref-fen dies uumlbernimmt sei-ne gesetzte Strategie

Das Strategie-Musterhat auch den Vorteildass zusaumltzliche ganzandere Verhaltenswei-sen des Bots leicht er-gaumlnzt werden koumlnnenHaumltte der Bot zwei wei-tere Verhaltensartendie es in jeweils drei un-terschiedlichen Ausprauml-gungen gibt erweitertman die Klasse Bot umzwei Interfaces und fuumlgtinsgesamt acht neueKlassen (pro Verhaltenein Interface und dreiRealisierungen) hinzu

Der Nachteil der Erweiterbarkeit bleibt aber nachwie vor Es ist zwar extrem leicht eine neueStrategie zu realisieren und diese dem Bot un-terzuschieben aber dennoch muss die KlasseGame alle konkreten Strategien kennen Wird ei-ne neue Strategie hinzugefuumlgt muss auch Game

angepasst werden Das ist also immer noch nichtdie ultimative Loumlsung

ImplementierungDie C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop3-beispieltargz

Die Erschaffung einer StrategieEin Nachteil der obigen Umsetzung ist dass dieKlasse Game von allen konkreten Strategien ab-haumlngt weil sie diese erstellen muss Diese Auf-gabe soll nun an eine Klasse uumlbergeben werdenderen einzige Aufgabe die Erstellung von Stra-tegien sein soll Hierfuumlr bedient man sich desFabrik-Musters (Factory-Pattern)

Von diesem Pattern gibt es drei Auspraumlgungenzum einen die Fabrik-Methode [6] dann die Ab-strakte Fabrik [7] und die Einfache Fabrik [8] Fuumlrdie Anwendung hier soll eine Einfache Fabrik ge-nutzt werden

DesignDie Umsetzung des Einfache-Fabrik-Musters istrecht simpel Das was vorher die Klasse Gamein der Methode start erledigt wird in einestatische Methode create der neuen KlasseStrategyFactory ausgelagert Game nutzt danndiese neue Klasse

Man haumltte auch auf die statische Methode ver-zichten und in der Methode start der Klas-se Game jedes Mal eine neue Instanz vonStrategyFactory erstellen koumlnnen Auch haumlt-te die Fabrik als Attribut von Game umgesetzt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 6

PROGRAMMIERUNG

Die Einfache Fabrik erzeugt verschiedene Strategien

werden koumlnnen Es gibt keineGruumlnde dies nicht auch so zutun

KlassenaufteilungAn den CRC-Karten fuumlr die Stra-tegien hat sich nichts geaumlndertsodass diese hier nicht noch ein-mal dargestellt werden sollen

Klasse StrategyFactoryBenoumltigt IStrategy

VariableStrategyAcceptStrategyDeclineStrategy

Verantwort erstellt die richti-ge Strategie (jenach Konsolenpa-rameter)

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die ange-

nommenen Punk-te

Klasse GameBenoumltigt StrategyFactory

BotVerantwort erstellt den Bot

und setzt die vonder Fabrik erzeug-te Strategie liest Benutzereinga-be fragt Bot nach Annahme oderAblehnung

AbhaumlngigkeitenDie Klasse StrategyFactory ist von allen kon-kreten Strategien abhaumlngig da sie diese erzeugt

Durch diese Abstraktion ist die Ab-haumlngigkeit von Game zu den Strate-gien aber verschwunden

Vor- und NachteileWas ist der Vorteil der FabrikDie Klasse Game ist nun viel un-abhaumlngiger Egal ob neue Strate-gien hinzugefuumlgt werden oder al-te sich aumlndern die Klasse Gameund somit die Bibliothek libgamemuss nicht neu erstellt werdenDer Code ist also gut gekapseltund laumlsst sich so einfach erweiternund warten Mit diesem Designhat man das Design-Prinzip bdquoKap-sele was sich veraumlndertldquo gut um-gesetzt

Dennoch ist es eher schlechtdass die StrategyFactory je-des Mal angepasst werden musswenn eine neue Strategie hinzuge-fuumlgt wird Das laumlsst sich also nochverbessern

ImplementierungJe nach Sprache kann man dieEinfache Fabrik auf verschiede-ne Arten umsetzen Selbst in C++kann man den Code auf vieleverschiedene Weisen erstellen Inder Beispielimplementierung wur-

de sich fuumlr eine einfache Loumlsung entschiedenbei der die drei konkreten Strategien in einem as-soziativen Array gespeichert werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 7

PROGRAMMIERUNG

Diese Loumlsung entspricht in etwa auchdem Endprodukt beim freiesMagazin-Programmierwettbewerb [9] Sie hatte den Vor-teil dass Teilnehmer die StrategyFactory nuran zwei Stellen anpassen mussten Zum einenmusste das assoziative Array erweitert wer-den zum anderen musste natuumlrlich die neueStrategie-Header-Datei inkludiert werden

Die C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop4-beispieltargz

AusblickDerzeit nutzt die Klasse Game die statischen Ope-rationen der StrategyFactory Im naumlchsten Teil

lernt man ein Muster kennen welches diesesKonzept etwas verbessert

LINKS

[1] httpssecurewikimediaorgwikipediadewikiObjektorientierte_Programmierung

[2] httpwwwfreiesmagazindefreiesMagazin-2012-03

[3] httpsdewikipediaorgwikiStrategie_(Entwurfsmuster)

[4] httpsdewikipediaorgwikiSchnittstelle_(Programmierung)

[5] httpsdewikipediaorgwikiAssoziation_(UML)Aggregation

[6] httpsdewikipediaorgwikiFabrikmethode

[7] httpsdewikipediaorgwikiAbstrakte_Fabrik[8] httpwwwoodesigncomfactory-patternhtml[9] httpwwwfreiesmagazinde20111001-vierter-

freiesmagazin-programmierwettbewerb-gestartet

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istC++-Software-Entwickler und hattaumlglich mit Software-Design zu tun

Diesen Artikel kommentieren

bdquoQwertial Aphasialdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom604

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 8

PROGRAMMIERUNG

Python ndash Teil 12 Regulaumlre Ausdruumlcke von Daniel Noumlgel

N achdem im letzten Teil (siehe bdquoPy-thon ndash Teil 11 Zwitschern in Schwarz-Weiszligldquo freiesMagazin 022012 [1]) die-

ser Reihe ein kleiner Twitter-Client bespro-chen wurde wird es nun wieder etwas theo-retischer Anhand einiger einfacher Beispie-le sollen Regulaumlre Ausdruumlcke vorgestellt wer-den

Wie man eine Zeichenkette beschreibtWer sich bereits ein wenig mit Programmierungbeschaumlftigt hat wird mit groszliger Wahrscheinlich-keit schon einmal Regulaumlren Ausdruumlcken begeg-net sein Auf den ersten Blick wirken die Aus-druumlcke haumlufig recht kryptisch und abschreckendDabei ist nur wenig Aufwand noumltig um sich zu-mindest einige Grundlagen anzueignen

Regulaumlre Ausdruumlcke sind ndash vereinfacht gesagt ndashBeschreibungen von Zeichenketten Wer Regulauml-re Ausdruumlcke verwendet moumlchte also eine mehroder weniger definierte Zeichenkette finden bzwuumlberpruumlfen In Python lassen sich Regulaumlre Aus-druumlcke uumlber das Modul re anbinden [2]

Ein haumlufiges Beispiel ist das Auslesen einer IP-Adresse von einer Seite So bietet DynDNSorgeinen Service an der die derzeitige externeIP-Adresse eines Besuchers anzeigt [3] Dochwie liest man diese Adresse automatisiert ausHaumlufig reichen Methoden wie strfind() oderstrsplit() nicht aus um derartige Problemezu loumlsen Mit Regulaumlren Ausdruumlcken kann die ge-

suchte Zeichenkette beschrieben werden ohnegenaueres Wissen uumlber das bdquoUmfeldldquo zu benoumlti-gen

Im Fall von IPv4-Adressen wird eine Zeichenket-te gesucht die in der Regel aus vier Bloumlcken mitjeweils ein bis drei Ziffern besteht ndash getrennt vonPunkten Ein vereinfachter Regulaumlrer Ausdruckkoumlnnte diese Zeichenkette wie folgt beschreiben

[0-9]13[0-9]13[0-9]13[0-9]13

Vereinfacht ist dieser Ausdruck deshalb weil erauch Adressen wie 999999999999 akzeptie-ren wuumlrde was aber keine guumlltige IP-Adresseist Im Netz finden sich Beispiele fuumlr RegulaumlreAusdruumlcke die diesen Umstand beruumlcksichtigenndash lesbarer werden die Regulaumlren Ausdruumlcke da-durch allerdings nicht [4]

ZeichenkundeIn Regulaumlren Ausdruumlcken haben viele Zeichen ei-ne besondere Bedeutung ndash etwa die eckigen undgeschweiften Klammern oder auch der PunktDie grundlegenden Zeichen sollen im Folgendenkurz vorgestellt werden

Eckige Klammern []Eckige Klammern definieren in Regulaumlren Aus-druumlcken sogenannte Sets In den Klammernkann also ein Set von Zeichen definiert werdenauf die der Regulaumlre Ausdruck passen soll Wennetwa die Vokale a e i o und u in das Set aufge-

nommen werden sollen wuumlrde das Set so ausse-hen [aeiou] Im obigen Beispiel wird mit Hilfedes Minus-Zeichens ein sogenannter Bereich de-finiert [0-9] trifft also auf Zahlen von 0 bis 9 zuEs koumlnnen auch Bereiche uumlber Buchstaben gebil-det werden so trifft [a-z] auf die kleinen Buch-staben von a bis z zu Wichtig dabei Das Setdefiniert zunaumlchst nur welche Zeichen prinzipiell

gesucht sind Uumlber die Rei-henfolge und Anzahl wirdkeine Aussage getroffen

Geschweifte KlammernDie Anzahl der gesuchten Zeichen wird mit soge-nannten Quantifikatoren definiert Sie beziehensich immer auf den vorangegangenen Ausdruckim obigen Beispiel also das Set [0-9] Die ge-schweiften Klammern sind nur eine Art von Quan-tifikatoren Mit ihnen laumlsst sich sehr genau festle-gen welche Anzahl von Zeichen gesucht ist DerQuantifikator 13 besagt dass mindestens einund maximal drei Zeichen aus dem zuvor defi-nierten Set [0-9] gesucht werden Eine Varianteist der Quantifikator x der definiert dass genaux Zeichen aus dem zuvor definierten Set vorhan-den sein muumlssen

Der Punkt Auszligerhalb von Sets passt der Punkt auf jedes be-liebiges Zeichen ndash ausgenommen Zeilenumbruuml-che (wobei sich dieses Verhalten auch modifizie-ren laumlsst) Der Ausdruck 5 trifft also auf fuumlnf be-liebige Zeichen zu

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 9

PROGRAMMIERUNG

Stern und Plus +Bei Stern und Plus handelt es sich um soge-nannte vordefinierte Quantifikatoren Waumlhrendder Stern definiert dass 0 oder mehr Zeichendes vorherigen Ausdrucks gesucht werden de-finiert das Plus dass 1 oder mehr Zeichen ausdem vorherigen Ausdruck gesucht werden

Von Haus aus sind die beiden Quantifikatorenbdquogefraumlszligigldquo (engl greedy) Das heiszligt sie passenauf so viele Zeichen wie moumlglich Im folgendenBeispiel soll der Regulaumlre Ausdruck Pyon aufdie Zeichenkette Python passen

gtgtgt import regtgtgt text = Python Python Pythongtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Auf die genaue Syntax wird spaumlter noch ein-gegangen Auffaumlllig ist jedoch dass das Ergeb-nis nicht ndash wie vielleicht erwartet ndash die Zeichen-kette Python findet sondern die gesamte Zei-chenkette auf den Regulaumlren Ausdruck Pyonpasst Bei genauerer Betrachtung wird auch klarwarum Weil der Quantifikator gefraumlszligig ist wer-den so viele Zeichen wie moumlglich von dem Aus-druck konsumiert Entsprechend passt nichtnur Python auf den Ausdruck Pyon sondernauch die gesamte Zeichenkette ndash schlieszliglich be-ginnt auch die mit Py und endet mit on Um ge-fraumlszligige Quantifikatoren zu saumlttigen gibt es denFragezeichen-Quantifikator Alleinstehend stehtdas Fragezeichen fuumlr 0 oder 1 Vorkommen der

zuvor definierten Zeichen Steht es aber nach ei-nem gefraumlszligigen Quantifikator macht es diesengenuumlgsam (engl non-greedy)

gtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Hier gibt es ndash wie zu erwarten ndash drei Treffer

Die Escape-Sequenz Da die oben genannten Zeichen in RegulaumlrenAusdruumlcken eine Sonderfunktion haben ist derumgekehrte Schraumlgstrich als Escape-Sequenzdefiniert [5] Falls also tatsaumlchlich eine eckigeKlammer ein Punkt oder der Stern als Zeichenbenoumltigt werden muss ihnen in der Regel einumgekehrter Schraumlgstrich voran gestellt werdenDaher sind die Punkte in dem obigen RegulaumlrenAusdruck auch durch umgekehrte Schraumlgstrichemaskiert Es wird eben nicht der Punkt als vor-definierte Zeichenklasse benoumltigt sondern derPunkt als solcher Es gibt allerdings eine Ausnah-me Da viele Zeichen innerhalb von Sets (alsoinnerhalb von eckigen Klammern) ihre Sonderbe-deutung verlieren muumlssen sie hier nicht maskiertwerden Innerhalb eckiger Klammern stehen diemeisten Zeichen also fuumlr sich selbst - eine Aus-nahme ist das Minus-Zeichen - da es in SetsBereiche definiert ([0-9] oder [a-z]) Es mussin Sets maskiert werden wenn tatsaumlchlich dasMinus gemeint ist

Verwendung in PythonEin kleines Anwendungsbeispiel wurde obenschon beschrieben Zunaumlchst wurde dazu das

Modul re importiert Mit der Zeile pattern =recompile(rPyon) wurde ein sogenann-tes Pattern-Objekt erstellt und an den Namenpattern gebunden Dieses Objekt stellt ver-schiedene Methoden bereit um den RegulaumlrenAusdruck auf Zeichenketten anzuwenden Bevorauf diese Methoden naumlher eingegangen wird sollkurz auf eine kleine Besonderheit eingegangenwerden Der Zeichenkette die recompile alsParameter uumlbergeben wurde wurde ein r voran-gestellt Diese Notation ist von Unicode-Literalenin Python2 bekannt Aber was bedeutet das rEin Beispiel ist in diesem Fall sehr aufschluss-reich

Ein Regulaumlrer Ausdruck soll auf einen umgekehr-ten Schraumlgstrich passen Der erste Gedanke

gtgtgt rematch( )

ist schnell verworfen Da der Schraumlgstrichin Python-Zeichenketten als Escape-Sequenzdient wird dadurch nur das nachfolgende Anfuumlh-rungszeichen maskiert ndash ein Fehler tritt auf DieSchraumlgstriche muumlssen also jeweils maskiert wer-den

gtgtgt rematch( )

Auch dieses Vorgehen fuumlhrt zu einem FehlerJetzt handelt es sich zwar um guumlltige Python-Zeichenketten auf Ebene des Regulaumlren Aus-drucks steht dadurch jedoch wiederum nur eineinfacher Schraumlgstrich der ja in Regulaumlren Aus-druumlcken wiederum als Escape-Sequenz dient

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 10

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Die Einfache Fabrik erzeugt verschiedene Strategien

werden koumlnnen Es gibt keineGruumlnde dies nicht auch so zutun

KlassenaufteilungAn den CRC-Karten fuumlr die Stra-tegien hat sich nichts geaumlndertsodass diese hier nicht noch ein-mal dargestellt werden sollen

Klasse StrategyFactoryBenoumltigt IStrategy

VariableStrategyAcceptStrategyDeclineStrategy

Verantwort erstellt die richti-ge Strategie (jenach Konsolenpa-rameter)

Klasse BotBenoumltigt IStrategyVerantwort zaumlhlt die ange-

nommenen Punk-te

Klasse GameBenoumltigt StrategyFactory

BotVerantwort erstellt den Bot

und setzt die vonder Fabrik erzeug-te Strategie liest Benutzereinga-be fragt Bot nach Annahme oderAblehnung

AbhaumlngigkeitenDie Klasse StrategyFactory ist von allen kon-kreten Strategien abhaumlngig da sie diese erzeugt

Durch diese Abstraktion ist die Ab-haumlngigkeit von Game zu den Strate-gien aber verschwunden

Vor- und NachteileWas ist der Vorteil der FabrikDie Klasse Game ist nun viel un-abhaumlngiger Egal ob neue Strate-gien hinzugefuumlgt werden oder al-te sich aumlndern die Klasse Gameund somit die Bibliothek libgamemuss nicht neu erstellt werdenDer Code ist also gut gekapseltund laumlsst sich so einfach erweiternund warten Mit diesem Designhat man das Design-Prinzip bdquoKap-sele was sich veraumlndertldquo gut um-gesetzt

Dennoch ist es eher schlechtdass die StrategyFactory je-des Mal angepasst werden musswenn eine neue Strategie hinzuge-fuumlgt wird Das laumlsst sich also nochverbessern

ImplementierungJe nach Sprache kann man dieEinfache Fabrik auf verschiede-ne Arten umsetzen Selbst in C++kann man den Code auf vieleverschiedene Weisen erstellen Inder Beispielimplementierung wur-

de sich fuumlr eine einfache Loumlsung entschiedenbei der die drei konkreten Strategien in einem as-soziativen Array gespeichert werden

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 7

PROGRAMMIERUNG

Diese Loumlsung entspricht in etwa auchdem Endprodukt beim freiesMagazin-Programmierwettbewerb [9] Sie hatte den Vor-teil dass Teilnehmer die StrategyFactory nuran zwei Stellen anpassen mussten Zum einenmusste das assoziative Array erweitert wer-den zum anderen musste natuumlrlich die neueStrategie-Header-Datei inkludiert werden

Die C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop4-beispieltargz

AusblickDerzeit nutzt die Klasse Game die statischen Ope-rationen der StrategyFactory Im naumlchsten Teil

lernt man ein Muster kennen welches diesesKonzept etwas verbessert

LINKS

[1] httpssecurewikimediaorgwikipediadewikiObjektorientierte_Programmierung

[2] httpwwwfreiesmagazindefreiesMagazin-2012-03

[3] httpsdewikipediaorgwikiStrategie_(Entwurfsmuster)

[4] httpsdewikipediaorgwikiSchnittstelle_(Programmierung)

[5] httpsdewikipediaorgwikiAssoziation_(UML)Aggregation

[6] httpsdewikipediaorgwikiFabrikmethode

[7] httpsdewikipediaorgwikiAbstrakte_Fabrik[8] httpwwwoodesigncomfactory-patternhtml[9] httpwwwfreiesmagazinde20111001-vierter-

freiesmagazin-programmierwettbewerb-gestartet

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istC++-Software-Entwickler und hattaumlglich mit Software-Design zu tun

Diesen Artikel kommentieren

bdquoQwertial Aphasialdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom604

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 8

PROGRAMMIERUNG

Python ndash Teil 12 Regulaumlre Ausdruumlcke von Daniel Noumlgel

N achdem im letzten Teil (siehe bdquoPy-thon ndash Teil 11 Zwitschern in Schwarz-Weiszligldquo freiesMagazin 022012 [1]) die-

ser Reihe ein kleiner Twitter-Client bespro-chen wurde wird es nun wieder etwas theo-retischer Anhand einiger einfacher Beispie-le sollen Regulaumlre Ausdruumlcke vorgestellt wer-den

Wie man eine Zeichenkette beschreibtWer sich bereits ein wenig mit Programmierungbeschaumlftigt hat wird mit groszliger Wahrscheinlich-keit schon einmal Regulaumlren Ausdruumlcken begeg-net sein Auf den ersten Blick wirken die Aus-druumlcke haumlufig recht kryptisch und abschreckendDabei ist nur wenig Aufwand noumltig um sich zu-mindest einige Grundlagen anzueignen

Regulaumlre Ausdruumlcke sind ndash vereinfacht gesagt ndashBeschreibungen von Zeichenketten Wer Regulauml-re Ausdruumlcke verwendet moumlchte also eine mehroder weniger definierte Zeichenkette finden bzwuumlberpruumlfen In Python lassen sich Regulaumlre Aus-druumlcke uumlber das Modul re anbinden [2]

Ein haumlufiges Beispiel ist das Auslesen einer IP-Adresse von einer Seite So bietet DynDNSorgeinen Service an der die derzeitige externeIP-Adresse eines Besuchers anzeigt [3] Dochwie liest man diese Adresse automatisiert ausHaumlufig reichen Methoden wie strfind() oderstrsplit() nicht aus um derartige Problemezu loumlsen Mit Regulaumlren Ausdruumlcken kann die ge-

suchte Zeichenkette beschrieben werden ohnegenaueres Wissen uumlber das bdquoUmfeldldquo zu benoumlti-gen

Im Fall von IPv4-Adressen wird eine Zeichenket-te gesucht die in der Regel aus vier Bloumlcken mitjeweils ein bis drei Ziffern besteht ndash getrennt vonPunkten Ein vereinfachter Regulaumlrer Ausdruckkoumlnnte diese Zeichenkette wie folgt beschreiben

[0-9]13[0-9]13[0-9]13[0-9]13

Vereinfacht ist dieser Ausdruck deshalb weil erauch Adressen wie 999999999999 akzeptie-ren wuumlrde was aber keine guumlltige IP-Adresseist Im Netz finden sich Beispiele fuumlr RegulaumlreAusdruumlcke die diesen Umstand beruumlcksichtigenndash lesbarer werden die Regulaumlren Ausdruumlcke da-durch allerdings nicht [4]

ZeichenkundeIn Regulaumlren Ausdruumlcken haben viele Zeichen ei-ne besondere Bedeutung ndash etwa die eckigen undgeschweiften Klammern oder auch der PunktDie grundlegenden Zeichen sollen im Folgendenkurz vorgestellt werden

Eckige Klammern []Eckige Klammern definieren in Regulaumlren Aus-druumlcken sogenannte Sets In den Klammernkann also ein Set von Zeichen definiert werdenauf die der Regulaumlre Ausdruck passen soll Wennetwa die Vokale a e i o und u in das Set aufge-

nommen werden sollen wuumlrde das Set so ausse-hen [aeiou] Im obigen Beispiel wird mit Hilfedes Minus-Zeichens ein sogenannter Bereich de-finiert [0-9] trifft also auf Zahlen von 0 bis 9 zuEs koumlnnen auch Bereiche uumlber Buchstaben gebil-det werden so trifft [a-z] auf die kleinen Buch-staben von a bis z zu Wichtig dabei Das Setdefiniert zunaumlchst nur welche Zeichen prinzipiell

gesucht sind Uumlber die Rei-henfolge und Anzahl wirdkeine Aussage getroffen

Geschweifte KlammernDie Anzahl der gesuchten Zeichen wird mit soge-nannten Quantifikatoren definiert Sie beziehensich immer auf den vorangegangenen Ausdruckim obigen Beispiel also das Set [0-9] Die ge-schweiften Klammern sind nur eine Art von Quan-tifikatoren Mit ihnen laumlsst sich sehr genau festle-gen welche Anzahl von Zeichen gesucht ist DerQuantifikator 13 besagt dass mindestens einund maximal drei Zeichen aus dem zuvor defi-nierten Set [0-9] gesucht werden Eine Varianteist der Quantifikator x der definiert dass genaux Zeichen aus dem zuvor definierten Set vorhan-den sein muumlssen

Der Punkt Auszligerhalb von Sets passt der Punkt auf jedes be-liebiges Zeichen ndash ausgenommen Zeilenumbruuml-che (wobei sich dieses Verhalten auch modifizie-ren laumlsst) Der Ausdruck 5 trifft also auf fuumlnf be-liebige Zeichen zu

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 9

PROGRAMMIERUNG

Stern und Plus +Bei Stern und Plus handelt es sich um soge-nannte vordefinierte Quantifikatoren Waumlhrendder Stern definiert dass 0 oder mehr Zeichendes vorherigen Ausdrucks gesucht werden de-finiert das Plus dass 1 oder mehr Zeichen ausdem vorherigen Ausdruck gesucht werden

Von Haus aus sind die beiden Quantifikatorenbdquogefraumlszligigldquo (engl greedy) Das heiszligt sie passenauf so viele Zeichen wie moumlglich Im folgendenBeispiel soll der Regulaumlre Ausdruck Pyon aufdie Zeichenkette Python passen

gtgtgt import regtgtgt text = Python Python Pythongtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Auf die genaue Syntax wird spaumlter noch ein-gegangen Auffaumlllig ist jedoch dass das Ergeb-nis nicht ndash wie vielleicht erwartet ndash die Zeichen-kette Python findet sondern die gesamte Zei-chenkette auf den Regulaumlren Ausdruck Pyonpasst Bei genauerer Betrachtung wird auch klarwarum Weil der Quantifikator gefraumlszligig ist wer-den so viele Zeichen wie moumlglich von dem Aus-druck konsumiert Entsprechend passt nichtnur Python auf den Ausdruck Pyon sondernauch die gesamte Zeichenkette ndash schlieszliglich be-ginnt auch die mit Py und endet mit on Um ge-fraumlszligige Quantifikatoren zu saumlttigen gibt es denFragezeichen-Quantifikator Alleinstehend stehtdas Fragezeichen fuumlr 0 oder 1 Vorkommen der

zuvor definierten Zeichen Steht es aber nach ei-nem gefraumlszligigen Quantifikator macht es diesengenuumlgsam (engl non-greedy)

gtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Hier gibt es ndash wie zu erwarten ndash drei Treffer

Die Escape-Sequenz Da die oben genannten Zeichen in RegulaumlrenAusdruumlcken eine Sonderfunktion haben ist derumgekehrte Schraumlgstrich als Escape-Sequenzdefiniert [5] Falls also tatsaumlchlich eine eckigeKlammer ein Punkt oder der Stern als Zeichenbenoumltigt werden muss ihnen in der Regel einumgekehrter Schraumlgstrich voran gestellt werdenDaher sind die Punkte in dem obigen RegulaumlrenAusdruck auch durch umgekehrte Schraumlgstrichemaskiert Es wird eben nicht der Punkt als vor-definierte Zeichenklasse benoumltigt sondern derPunkt als solcher Es gibt allerdings eine Ausnah-me Da viele Zeichen innerhalb von Sets (alsoinnerhalb von eckigen Klammern) ihre Sonderbe-deutung verlieren muumlssen sie hier nicht maskiertwerden Innerhalb eckiger Klammern stehen diemeisten Zeichen also fuumlr sich selbst - eine Aus-nahme ist das Minus-Zeichen - da es in SetsBereiche definiert ([0-9] oder [a-z]) Es mussin Sets maskiert werden wenn tatsaumlchlich dasMinus gemeint ist

Verwendung in PythonEin kleines Anwendungsbeispiel wurde obenschon beschrieben Zunaumlchst wurde dazu das

Modul re importiert Mit der Zeile pattern =recompile(rPyon) wurde ein sogenann-tes Pattern-Objekt erstellt und an den Namenpattern gebunden Dieses Objekt stellt ver-schiedene Methoden bereit um den RegulaumlrenAusdruck auf Zeichenketten anzuwenden Bevorauf diese Methoden naumlher eingegangen wird sollkurz auf eine kleine Besonderheit eingegangenwerden Der Zeichenkette die recompile alsParameter uumlbergeben wurde wurde ein r voran-gestellt Diese Notation ist von Unicode-Literalenin Python2 bekannt Aber was bedeutet das rEin Beispiel ist in diesem Fall sehr aufschluss-reich

Ein Regulaumlrer Ausdruck soll auf einen umgekehr-ten Schraumlgstrich passen Der erste Gedanke

gtgtgt rematch( )

ist schnell verworfen Da der Schraumlgstrichin Python-Zeichenketten als Escape-Sequenzdient wird dadurch nur das nachfolgende Anfuumlh-rungszeichen maskiert ndash ein Fehler tritt auf DieSchraumlgstriche muumlssen also jeweils maskiert wer-den

gtgtgt rematch( )

Auch dieses Vorgehen fuumlhrt zu einem FehlerJetzt handelt es sich zwar um guumlltige Python-Zeichenketten auf Ebene des Regulaumlren Aus-drucks steht dadurch jedoch wiederum nur eineinfacher Schraumlgstrich der ja in Regulaumlren Aus-druumlcken wiederum als Escape-Sequenz dient

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 10

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Diese Loumlsung entspricht in etwa auchdem Endprodukt beim freiesMagazin-Programmierwettbewerb [9] Sie hatte den Vor-teil dass Teilnehmer die StrategyFactory nuran zwei Stellen anpassen mussten Zum einenmusste das assoziative Array erweitert wer-den zum anderen musste natuumlrlich die neueStrategie-Header-Datei inkludiert werden

Die C++-Implementierung der obigen Klassenkann als Archiv heruntergeladen werden oop4-beispieltargz

AusblickDerzeit nutzt die Klasse Game die statischen Ope-rationen der StrategyFactory Im naumlchsten Teil

lernt man ein Muster kennen welches diesesKonzept etwas verbessert

LINKS

[1] httpssecurewikimediaorgwikipediadewikiObjektorientierte_Programmierung

[2] httpwwwfreiesmagazindefreiesMagazin-2012-03

[3] httpsdewikipediaorgwikiStrategie_(Entwurfsmuster)

[4] httpsdewikipediaorgwikiSchnittstelle_(Programmierung)

[5] httpsdewikipediaorgwikiAssoziation_(UML)Aggregation

[6] httpsdewikipediaorgwikiFabrikmethode

[7] httpsdewikipediaorgwikiAbstrakte_Fabrik[8] httpwwwoodesigncomfactory-patternhtml[9] httpwwwfreiesmagazinde20111001-vierter-

freiesmagazin-programmierwettbewerb-gestartet

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istC++-Software-Entwickler und hattaumlglich mit Software-Design zu tun

Diesen Artikel kommentieren

bdquoQwertial Aphasialdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom604

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 8

PROGRAMMIERUNG

Python ndash Teil 12 Regulaumlre Ausdruumlcke von Daniel Noumlgel

N achdem im letzten Teil (siehe bdquoPy-thon ndash Teil 11 Zwitschern in Schwarz-Weiszligldquo freiesMagazin 022012 [1]) die-

ser Reihe ein kleiner Twitter-Client bespro-chen wurde wird es nun wieder etwas theo-retischer Anhand einiger einfacher Beispie-le sollen Regulaumlre Ausdruumlcke vorgestellt wer-den

Wie man eine Zeichenkette beschreibtWer sich bereits ein wenig mit Programmierungbeschaumlftigt hat wird mit groszliger Wahrscheinlich-keit schon einmal Regulaumlren Ausdruumlcken begeg-net sein Auf den ersten Blick wirken die Aus-druumlcke haumlufig recht kryptisch und abschreckendDabei ist nur wenig Aufwand noumltig um sich zu-mindest einige Grundlagen anzueignen

Regulaumlre Ausdruumlcke sind ndash vereinfacht gesagt ndashBeschreibungen von Zeichenketten Wer Regulauml-re Ausdruumlcke verwendet moumlchte also eine mehroder weniger definierte Zeichenkette finden bzwuumlberpruumlfen In Python lassen sich Regulaumlre Aus-druumlcke uumlber das Modul re anbinden [2]

Ein haumlufiges Beispiel ist das Auslesen einer IP-Adresse von einer Seite So bietet DynDNSorgeinen Service an der die derzeitige externeIP-Adresse eines Besuchers anzeigt [3] Dochwie liest man diese Adresse automatisiert ausHaumlufig reichen Methoden wie strfind() oderstrsplit() nicht aus um derartige Problemezu loumlsen Mit Regulaumlren Ausdruumlcken kann die ge-

suchte Zeichenkette beschrieben werden ohnegenaueres Wissen uumlber das bdquoUmfeldldquo zu benoumlti-gen

Im Fall von IPv4-Adressen wird eine Zeichenket-te gesucht die in der Regel aus vier Bloumlcken mitjeweils ein bis drei Ziffern besteht ndash getrennt vonPunkten Ein vereinfachter Regulaumlrer Ausdruckkoumlnnte diese Zeichenkette wie folgt beschreiben

[0-9]13[0-9]13[0-9]13[0-9]13

Vereinfacht ist dieser Ausdruck deshalb weil erauch Adressen wie 999999999999 akzeptie-ren wuumlrde was aber keine guumlltige IP-Adresseist Im Netz finden sich Beispiele fuumlr RegulaumlreAusdruumlcke die diesen Umstand beruumlcksichtigenndash lesbarer werden die Regulaumlren Ausdruumlcke da-durch allerdings nicht [4]

ZeichenkundeIn Regulaumlren Ausdruumlcken haben viele Zeichen ei-ne besondere Bedeutung ndash etwa die eckigen undgeschweiften Klammern oder auch der PunktDie grundlegenden Zeichen sollen im Folgendenkurz vorgestellt werden

Eckige Klammern []Eckige Klammern definieren in Regulaumlren Aus-druumlcken sogenannte Sets In den Klammernkann also ein Set von Zeichen definiert werdenauf die der Regulaumlre Ausdruck passen soll Wennetwa die Vokale a e i o und u in das Set aufge-

nommen werden sollen wuumlrde das Set so ausse-hen [aeiou] Im obigen Beispiel wird mit Hilfedes Minus-Zeichens ein sogenannter Bereich de-finiert [0-9] trifft also auf Zahlen von 0 bis 9 zuEs koumlnnen auch Bereiche uumlber Buchstaben gebil-det werden so trifft [a-z] auf die kleinen Buch-staben von a bis z zu Wichtig dabei Das Setdefiniert zunaumlchst nur welche Zeichen prinzipiell

gesucht sind Uumlber die Rei-henfolge und Anzahl wirdkeine Aussage getroffen

Geschweifte KlammernDie Anzahl der gesuchten Zeichen wird mit soge-nannten Quantifikatoren definiert Sie beziehensich immer auf den vorangegangenen Ausdruckim obigen Beispiel also das Set [0-9] Die ge-schweiften Klammern sind nur eine Art von Quan-tifikatoren Mit ihnen laumlsst sich sehr genau festle-gen welche Anzahl von Zeichen gesucht ist DerQuantifikator 13 besagt dass mindestens einund maximal drei Zeichen aus dem zuvor defi-nierten Set [0-9] gesucht werden Eine Varianteist der Quantifikator x der definiert dass genaux Zeichen aus dem zuvor definierten Set vorhan-den sein muumlssen

Der Punkt Auszligerhalb von Sets passt der Punkt auf jedes be-liebiges Zeichen ndash ausgenommen Zeilenumbruuml-che (wobei sich dieses Verhalten auch modifizie-ren laumlsst) Der Ausdruck 5 trifft also auf fuumlnf be-liebige Zeichen zu

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 9

PROGRAMMIERUNG

Stern und Plus +Bei Stern und Plus handelt es sich um soge-nannte vordefinierte Quantifikatoren Waumlhrendder Stern definiert dass 0 oder mehr Zeichendes vorherigen Ausdrucks gesucht werden de-finiert das Plus dass 1 oder mehr Zeichen ausdem vorherigen Ausdruck gesucht werden

Von Haus aus sind die beiden Quantifikatorenbdquogefraumlszligigldquo (engl greedy) Das heiszligt sie passenauf so viele Zeichen wie moumlglich Im folgendenBeispiel soll der Regulaumlre Ausdruck Pyon aufdie Zeichenkette Python passen

gtgtgt import regtgtgt text = Python Python Pythongtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Auf die genaue Syntax wird spaumlter noch ein-gegangen Auffaumlllig ist jedoch dass das Ergeb-nis nicht ndash wie vielleicht erwartet ndash die Zeichen-kette Python findet sondern die gesamte Zei-chenkette auf den Regulaumlren Ausdruck Pyonpasst Bei genauerer Betrachtung wird auch klarwarum Weil der Quantifikator gefraumlszligig ist wer-den so viele Zeichen wie moumlglich von dem Aus-druck konsumiert Entsprechend passt nichtnur Python auf den Ausdruck Pyon sondernauch die gesamte Zeichenkette ndash schlieszliglich be-ginnt auch die mit Py und endet mit on Um ge-fraumlszligige Quantifikatoren zu saumlttigen gibt es denFragezeichen-Quantifikator Alleinstehend stehtdas Fragezeichen fuumlr 0 oder 1 Vorkommen der

zuvor definierten Zeichen Steht es aber nach ei-nem gefraumlszligigen Quantifikator macht es diesengenuumlgsam (engl non-greedy)

gtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Hier gibt es ndash wie zu erwarten ndash drei Treffer

Die Escape-Sequenz Da die oben genannten Zeichen in RegulaumlrenAusdruumlcken eine Sonderfunktion haben ist derumgekehrte Schraumlgstrich als Escape-Sequenzdefiniert [5] Falls also tatsaumlchlich eine eckigeKlammer ein Punkt oder der Stern als Zeichenbenoumltigt werden muss ihnen in der Regel einumgekehrter Schraumlgstrich voran gestellt werdenDaher sind die Punkte in dem obigen RegulaumlrenAusdruck auch durch umgekehrte Schraumlgstrichemaskiert Es wird eben nicht der Punkt als vor-definierte Zeichenklasse benoumltigt sondern derPunkt als solcher Es gibt allerdings eine Ausnah-me Da viele Zeichen innerhalb von Sets (alsoinnerhalb von eckigen Klammern) ihre Sonderbe-deutung verlieren muumlssen sie hier nicht maskiertwerden Innerhalb eckiger Klammern stehen diemeisten Zeichen also fuumlr sich selbst - eine Aus-nahme ist das Minus-Zeichen - da es in SetsBereiche definiert ([0-9] oder [a-z]) Es mussin Sets maskiert werden wenn tatsaumlchlich dasMinus gemeint ist

Verwendung in PythonEin kleines Anwendungsbeispiel wurde obenschon beschrieben Zunaumlchst wurde dazu das

Modul re importiert Mit der Zeile pattern =recompile(rPyon) wurde ein sogenann-tes Pattern-Objekt erstellt und an den Namenpattern gebunden Dieses Objekt stellt ver-schiedene Methoden bereit um den RegulaumlrenAusdruck auf Zeichenketten anzuwenden Bevorauf diese Methoden naumlher eingegangen wird sollkurz auf eine kleine Besonderheit eingegangenwerden Der Zeichenkette die recompile alsParameter uumlbergeben wurde wurde ein r voran-gestellt Diese Notation ist von Unicode-Literalenin Python2 bekannt Aber was bedeutet das rEin Beispiel ist in diesem Fall sehr aufschluss-reich

Ein Regulaumlrer Ausdruck soll auf einen umgekehr-ten Schraumlgstrich passen Der erste Gedanke

gtgtgt rematch( )

ist schnell verworfen Da der Schraumlgstrichin Python-Zeichenketten als Escape-Sequenzdient wird dadurch nur das nachfolgende Anfuumlh-rungszeichen maskiert ndash ein Fehler tritt auf DieSchraumlgstriche muumlssen also jeweils maskiert wer-den

gtgtgt rematch( )

Auch dieses Vorgehen fuumlhrt zu einem FehlerJetzt handelt es sich zwar um guumlltige Python-Zeichenketten auf Ebene des Regulaumlren Aus-drucks steht dadurch jedoch wiederum nur eineinfacher Schraumlgstrich der ja in Regulaumlren Aus-druumlcken wiederum als Escape-Sequenz dient

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 10

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Python ndash Teil 12 Regulaumlre Ausdruumlcke von Daniel Noumlgel

N achdem im letzten Teil (siehe bdquoPy-thon ndash Teil 11 Zwitschern in Schwarz-Weiszligldquo freiesMagazin 022012 [1]) die-

ser Reihe ein kleiner Twitter-Client bespro-chen wurde wird es nun wieder etwas theo-retischer Anhand einiger einfacher Beispie-le sollen Regulaumlre Ausdruumlcke vorgestellt wer-den

Wie man eine Zeichenkette beschreibtWer sich bereits ein wenig mit Programmierungbeschaumlftigt hat wird mit groszliger Wahrscheinlich-keit schon einmal Regulaumlren Ausdruumlcken begeg-net sein Auf den ersten Blick wirken die Aus-druumlcke haumlufig recht kryptisch und abschreckendDabei ist nur wenig Aufwand noumltig um sich zu-mindest einige Grundlagen anzueignen

Regulaumlre Ausdruumlcke sind ndash vereinfacht gesagt ndashBeschreibungen von Zeichenketten Wer Regulauml-re Ausdruumlcke verwendet moumlchte also eine mehroder weniger definierte Zeichenkette finden bzwuumlberpruumlfen In Python lassen sich Regulaumlre Aus-druumlcke uumlber das Modul re anbinden [2]

Ein haumlufiges Beispiel ist das Auslesen einer IP-Adresse von einer Seite So bietet DynDNSorgeinen Service an der die derzeitige externeIP-Adresse eines Besuchers anzeigt [3] Dochwie liest man diese Adresse automatisiert ausHaumlufig reichen Methoden wie strfind() oderstrsplit() nicht aus um derartige Problemezu loumlsen Mit Regulaumlren Ausdruumlcken kann die ge-

suchte Zeichenkette beschrieben werden ohnegenaueres Wissen uumlber das bdquoUmfeldldquo zu benoumlti-gen

Im Fall von IPv4-Adressen wird eine Zeichenket-te gesucht die in der Regel aus vier Bloumlcken mitjeweils ein bis drei Ziffern besteht ndash getrennt vonPunkten Ein vereinfachter Regulaumlrer Ausdruckkoumlnnte diese Zeichenkette wie folgt beschreiben

[0-9]13[0-9]13[0-9]13[0-9]13

Vereinfacht ist dieser Ausdruck deshalb weil erauch Adressen wie 999999999999 akzeptie-ren wuumlrde was aber keine guumlltige IP-Adresseist Im Netz finden sich Beispiele fuumlr RegulaumlreAusdruumlcke die diesen Umstand beruumlcksichtigenndash lesbarer werden die Regulaumlren Ausdruumlcke da-durch allerdings nicht [4]

ZeichenkundeIn Regulaumlren Ausdruumlcken haben viele Zeichen ei-ne besondere Bedeutung ndash etwa die eckigen undgeschweiften Klammern oder auch der PunktDie grundlegenden Zeichen sollen im Folgendenkurz vorgestellt werden

Eckige Klammern []Eckige Klammern definieren in Regulaumlren Aus-druumlcken sogenannte Sets In den Klammernkann also ein Set von Zeichen definiert werdenauf die der Regulaumlre Ausdruck passen soll Wennetwa die Vokale a e i o und u in das Set aufge-

nommen werden sollen wuumlrde das Set so ausse-hen [aeiou] Im obigen Beispiel wird mit Hilfedes Minus-Zeichens ein sogenannter Bereich de-finiert [0-9] trifft also auf Zahlen von 0 bis 9 zuEs koumlnnen auch Bereiche uumlber Buchstaben gebil-det werden so trifft [a-z] auf die kleinen Buch-staben von a bis z zu Wichtig dabei Das Setdefiniert zunaumlchst nur welche Zeichen prinzipiell

gesucht sind Uumlber die Rei-henfolge und Anzahl wirdkeine Aussage getroffen

Geschweifte KlammernDie Anzahl der gesuchten Zeichen wird mit soge-nannten Quantifikatoren definiert Sie beziehensich immer auf den vorangegangenen Ausdruckim obigen Beispiel also das Set [0-9] Die ge-schweiften Klammern sind nur eine Art von Quan-tifikatoren Mit ihnen laumlsst sich sehr genau festle-gen welche Anzahl von Zeichen gesucht ist DerQuantifikator 13 besagt dass mindestens einund maximal drei Zeichen aus dem zuvor defi-nierten Set [0-9] gesucht werden Eine Varianteist der Quantifikator x der definiert dass genaux Zeichen aus dem zuvor definierten Set vorhan-den sein muumlssen

Der Punkt Auszligerhalb von Sets passt der Punkt auf jedes be-liebiges Zeichen ndash ausgenommen Zeilenumbruuml-che (wobei sich dieses Verhalten auch modifizie-ren laumlsst) Der Ausdruck 5 trifft also auf fuumlnf be-liebige Zeichen zu

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 9

PROGRAMMIERUNG

Stern und Plus +Bei Stern und Plus handelt es sich um soge-nannte vordefinierte Quantifikatoren Waumlhrendder Stern definiert dass 0 oder mehr Zeichendes vorherigen Ausdrucks gesucht werden de-finiert das Plus dass 1 oder mehr Zeichen ausdem vorherigen Ausdruck gesucht werden

Von Haus aus sind die beiden Quantifikatorenbdquogefraumlszligigldquo (engl greedy) Das heiszligt sie passenauf so viele Zeichen wie moumlglich Im folgendenBeispiel soll der Regulaumlre Ausdruck Pyon aufdie Zeichenkette Python passen

gtgtgt import regtgtgt text = Python Python Pythongtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Auf die genaue Syntax wird spaumlter noch ein-gegangen Auffaumlllig ist jedoch dass das Ergeb-nis nicht ndash wie vielleicht erwartet ndash die Zeichen-kette Python findet sondern die gesamte Zei-chenkette auf den Regulaumlren Ausdruck Pyonpasst Bei genauerer Betrachtung wird auch klarwarum Weil der Quantifikator gefraumlszligig ist wer-den so viele Zeichen wie moumlglich von dem Aus-druck konsumiert Entsprechend passt nichtnur Python auf den Ausdruck Pyon sondernauch die gesamte Zeichenkette ndash schlieszliglich be-ginnt auch die mit Py und endet mit on Um ge-fraumlszligige Quantifikatoren zu saumlttigen gibt es denFragezeichen-Quantifikator Alleinstehend stehtdas Fragezeichen fuumlr 0 oder 1 Vorkommen der

zuvor definierten Zeichen Steht es aber nach ei-nem gefraumlszligigen Quantifikator macht es diesengenuumlgsam (engl non-greedy)

gtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Hier gibt es ndash wie zu erwarten ndash drei Treffer

Die Escape-Sequenz Da die oben genannten Zeichen in RegulaumlrenAusdruumlcken eine Sonderfunktion haben ist derumgekehrte Schraumlgstrich als Escape-Sequenzdefiniert [5] Falls also tatsaumlchlich eine eckigeKlammer ein Punkt oder der Stern als Zeichenbenoumltigt werden muss ihnen in der Regel einumgekehrter Schraumlgstrich voran gestellt werdenDaher sind die Punkte in dem obigen RegulaumlrenAusdruck auch durch umgekehrte Schraumlgstrichemaskiert Es wird eben nicht der Punkt als vor-definierte Zeichenklasse benoumltigt sondern derPunkt als solcher Es gibt allerdings eine Ausnah-me Da viele Zeichen innerhalb von Sets (alsoinnerhalb von eckigen Klammern) ihre Sonderbe-deutung verlieren muumlssen sie hier nicht maskiertwerden Innerhalb eckiger Klammern stehen diemeisten Zeichen also fuumlr sich selbst - eine Aus-nahme ist das Minus-Zeichen - da es in SetsBereiche definiert ([0-9] oder [a-z]) Es mussin Sets maskiert werden wenn tatsaumlchlich dasMinus gemeint ist

Verwendung in PythonEin kleines Anwendungsbeispiel wurde obenschon beschrieben Zunaumlchst wurde dazu das

Modul re importiert Mit der Zeile pattern =recompile(rPyon) wurde ein sogenann-tes Pattern-Objekt erstellt und an den Namenpattern gebunden Dieses Objekt stellt ver-schiedene Methoden bereit um den RegulaumlrenAusdruck auf Zeichenketten anzuwenden Bevorauf diese Methoden naumlher eingegangen wird sollkurz auf eine kleine Besonderheit eingegangenwerden Der Zeichenkette die recompile alsParameter uumlbergeben wurde wurde ein r voran-gestellt Diese Notation ist von Unicode-Literalenin Python2 bekannt Aber was bedeutet das rEin Beispiel ist in diesem Fall sehr aufschluss-reich

Ein Regulaumlrer Ausdruck soll auf einen umgekehr-ten Schraumlgstrich passen Der erste Gedanke

gtgtgt rematch( )

ist schnell verworfen Da der Schraumlgstrichin Python-Zeichenketten als Escape-Sequenzdient wird dadurch nur das nachfolgende Anfuumlh-rungszeichen maskiert ndash ein Fehler tritt auf DieSchraumlgstriche muumlssen also jeweils maskiert wer-den

gtgtgt rematch( )

Auch dieses Vorgehen fuumlhrt zu einem FehlerJetzt handelt es sich zwar um guumlltige Python-Zeichenketten auf Ebene des Regulaumlren Aus-drucks steht dadurch jedoch wiederum nur eineinfacher Schraumlgstrich der ja in Regulaumlren Aus-druumlcken wiederum als Escape-Sequenz dient

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 10

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Stern und Plus +Bei Stern und Plus handelt es sich um soge-nannte vordefinierte Quantifikatoren Waumlhrendder Stern definiert dass 0 oder mehr Zeichendes vorherigen Ausdrucks gesucht werden de-finiert das Plus dass 1 oder mehr Zeichen ausdem vorherigen Ausdruck gesucht werden

Von Haus aus sind die beiden Quantifikatorenbdquogefraumlszligigldquo (engl greedy) Das heiszligt sie passenauf so viele Zeichen wie moumlglich Im folgendenBeispiel soll der Regulaumlre Ausdruck Pyon aufdie Zeichenkette Python passen

gtgtgt import regtgtgt text = Python Python Pythongtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Auf die genaue Syntax wird spaumlter noch ein-gegangen Auffaumlllig ist jedoch dass das Ergeb-nis nicht ndash wie vielleicht erwartet ndash die Zeichen-kette Python findet sondern die gesamte Zei-chenkette auf den Regulaumlren Ausdruck Pyonpasst Bei genauerer Betrachtung wird auch klarwarum Weil der Quantifikator gefraumlszligig ist wer-den so viele Zeichen wie moumlglich von dem Aus-druck konsumiert Entsprechend passt nichtnur Python auf den Ausdruck Pyon sondernauch die gesamte Zeichenkette ndash schlieszliglich be-ginnt auch die mit Py und endet mit on Um ge-fraumlszligige Quantifikatoren zu saumlttigen gibt es denFragezeichen-Quantifikator Alleinstehend stehtdas Fragezeichen fuumlr 0 oder 1 Vorkommen der

zuvor definierten Zeichen Steht es aber nach ei-nem gefraumlszligigen Quantifikator macht es diesengenuumlgsam (engl non-greedy)

gtgtgt pattern = recompile(rPyon)gtgtgt patternfindall(text)[Python Python Python]

Hier gibt es ndash wie zu erwarten ndash drei Treffer

Die Escape-Sequenz Da die oben genannten Zeichen in RegulaumlrenAusdruumlcken eine Sonderfunktion haben ist derumgekehrte Schraumlgstrich als Escape-Sequenzdefiniert [5] Falls also tatsaumlchlich eine eckigeKlammer ein Punkt oder der Stern als Zeichenbenoumltigt werden muss ihnen in der Regel einumgekehrter Schraumlgstrich voran gestellt werdenDaher sind die Punkte in dem obigen RegulaumlrenAusdruck auch durch umgekehrte Schraumlgstrichemaskiert Es wird eben nicht der Punkt als vor-definierte Zeichenklasse benoumltigt sondern derPunkt als solcher Es gibt allerdings eine Ausnah-me Da viele Zeichen innerhalb von Sets (alsoinnerhalb von eckigen Klammern) ihre Sonderbe-deutung verlieren muumlssen sie hier nicht maskiertwerden Innerhalb eckiger Klammern stehen diemeisten Zeichen also fuumlr sich selbst - eine Aus-nahme ist das Minus-Zeichen - da es in SetsBereiche definiert ([0-9] oder [a-z]) Es mussin Sets maskiert werden wenn tatsaumlchlich dasMinus gemeint ist

Verwendung in PythonEin kleines Anwendungsbeispiel wurde obenschon beschrieben Zunaumlchst wurde dazu das

Modul re importiert Mit der Zeile pattern =recompile(rPyon) wurde ein sogenann-tes Pattern-Objekt erstellt und an den Namenpattern gebunden Dieses Objekt stellt ver-schiedene Methoden bereit um den RegulaumlrenAusdruck auf Zeichenketten anzuwenden Bevorauf diese Methoden naumlher eingegangen wird sollkurz auf eine kleine Besonderheit eingegangenwerden Der Zeichenkette die recompile alsParameter uumlbergeben wurde wurde ein r voran-gestellt Diese Notation ist von Unicode-Literalenin Python2 bekannt Aber was bedeutet das rEin Beispiel ist in diesem Fall sehr aufschluss-reich

Ein Regulaumlrer Ausdruck soll auf einen umgekehr-ten Schraumlgstrich passen Der erste Gedanke

gtgtgt rematch( )

ist schnell verworfen Da der Schraumlgstrichin Python-Zeichenketten als Escape-Sequenzdient wird dadurch nur das nachfolgende Anfuumlh-rungszeichen maskiert ndash ein Fehler tritt auf DieSchraumlgstriche muumlssen also jeweils maskiert wer-den

gtgtgt rematch( )

Auch dieses Vorgehen fuumlhrt zu einem FehlerJetzt handelt es sich zwar um guumlltige Python-Zeichenketten auf Ebene des Regulaumlren Aus-drucks steht dadurch jedoch wiederum nur eineinfacher Schraumlgstrich der ja in Regulaumlren Aus-druumlcken wiederum als Escape-Sequenz dient

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 10

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Auch dies ist hier aber nicht gefordert Inner-halb des Regulaumlren Ausdrucks muss die Escape-Sequenz also ebenfalls maskiert werden ndash wes-halb zwei weitere umgekehrte Schraumlgstriche nouml-tig werden

gtgtgt rematch( )

Erst jetzt passt die Zeichenkette auf den Regu-laumlren Ausdruck ndash der ganze Aufwand wird alleindafuumlr benoumltigt um einen einfachen Schraumlgstrichzu kodieren Es ist offensichtlich dass dies inder Praxis zu groszliger Fehleranfaumllligkeit fuumlhrt Da-her gibt es die Raw-Zeichenketten In diesen Zei-chenketten gibt es keine Python-Sonderzeichender umgekehrte Schraumlgstrich muss auf dieserEbene daher nicht maskiert werden

gtgtgt rematch(r r)

Allerdings muss der Schraumlgstrich weiterhin aufEbene des Regulaumlren Ausdrucks maskiert wer-den ndash insgesamt wird die Verwendung dadurchaber bereits deutlich intuitiver und sicherer

Suchen Teilen ErsetzenDas re-Modul bietet diverse Moumlglichkeiten Re-gulaumlre Ausdruumlcke einzusetzen Jede Moumlglichkeitgibt es dabei in zwei Varianten Als Funktionauf Modulebene und als Methode eines Pattern-Objektes Am Beispiel der Funktion findall istdies schnell eroumlrtert

Beispiel 1

gtgtgt import re

gtgtgt text = Hallo Welt hier meine yZahlen 456164856gtgtgt pattern = recompile(r[0-9]+)gtgtgt patternfindall(text)[456164856]

Beispiel 2

import retext = Hallo Welt hier meine yZahlen 456164856refindall(r[0-9]+ text)[456164856]

In beiden Faumlllen fuumlhrt das Vorgehen zum ge-wuumlnschten Ergebnis Der Unterschied liegt le-diglich darin dass im ersten Fall zunaumlchstein Pattern-Objekt erzeugt wurde an dessenfindall-Methode der zu bearbeitende Text uumlber-geben wurde Das zweite Beispiel wirkt etwaskompakter Hier werden der Regulaumlre Ausdruckund der zu durchsuchende Text direkt an dieFunktion refindall uumlbergeben Tatsaumlchlichunterscheiden sich die beiden Vorgehensweisenaber kaum intern wird auch bei der zweiten Vari-ante zunaumlchst ein Pattern-Objekt erstellt

Nun aber zu den Funktionen selbst Kurzvorgestellt werden hier refindall resubrematch und research sowie resplit

refindall liefert eine Liste mit allen nicht-uumlberlappenden Treffern des gegebenen Regulauml-ren Ausdrucks in der zu durchsuchenden Zei-chenkette Die Funktion eignet sich daher bei-spielsweise wenn in einer Zeichenkette mehre-

re Vorkommen eines Musters gefunden werdensollen

gtgtgt text = Hier meine Zahlen 15 y78 19 und 126385 Auszligerdem noch 2234 und 234234gtgtgt refindall(r[0-9]+ text)[15 78 19 126385 2234 y234234]

Hier werden also alle Zahlenfolgen in einer Listeausgegeben

resub ist in der Lage anhand von RegulaumlrenAusdruumlcken Ersetzungen vorzunehmen

gtgtgt text = Hier meine Zahlen 15 78 y19 und 126385gtgtgt resub(r[0-9] text)Hier meine Zahlen und y

Hier wird jede einzelne Ziffer durch ein Sternchenersetzt Zu beachten ist dabei dass kein Quanti-fikator eingesetzt wird ndash jede einzelne Ziffer istdaher ein Treffer und wird ersetzt Mit dem gefrauml-szligigen -Quantifikator wuumlrde jeweils eine fortlau-fende Ziffernfolge durch ein einzelnes Sternchenersetzt

Ebenfalls sehr interessant ist die Funktionrematch Sie gibt ein sogenanntes Match-Objekt zuruumlck wenn der Regulaumlre Ausdruck aufdie gegebene Zeichenkette passt Andernfallswird None zuruumlck gegeben Im Unterschied zurefindall genuumlgt es hier aber nicht wenn derRegulaumlre Ausdruck auf einen Teil irgendwo in dergegebenen Zeichenkette passt Bei rematch

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 11

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

muumlssen die gesuchten Zeichen am Anfang derzu durchsuchenden Zeichenkette stehen

Anders geht dabei research vor Hier werdenebenfalls nicht-uumlberlappende Treffer gesucht ndashdiese duumlrfen allerdings auch an beliebiger Stelleinnerhalb der Zeichenkette auftauchen

Schlieszliglich soll an dieser Stelle noch kurz auf dieFunktion resplit eingegangen werden Wiedas Pendant der String-Objekte teilt die Split-Methode eine gegebene Zeichenkette A bei allenVorkommen der Zeichenkette B auf und erstelltso eine Liste

gtgtgt text = Hallo 546 Welt 668 dies 9999 ist 211 ein 0 Testgtgtgt resplit(r[0-9]+ text)[Hallo Welt dies ist ein Test]

Hier wurde die Zeichenkette text also anhandder Zahlen aufgetrennt Zu beachten dabei Eswerden eine oder mehr aufeinander folgende Zif-fern erwartet (+-Quantifikator)

Wie zu sehen ist enthalten die Elemente in derListe noch Leerzeichen ndash schlieszliglich gehoumlren die-se nicht zum Regulaumlren Ausdruck anhand des-sen die Zeichenkette aufgeteilt wurde Hier laumlsstsich jedoch leicht Abhilfe schaffen

gtgtgt resplit( [0-9]+ text)[Hallo Welt dies ist yein Test]

Nun werden beliebig viele Leerzeichen (-Quantifikator) in den Regulaumlren Ausdruck aufge-nommen

Match-Objekte und GruppenAn dieser Stelle soll noch einmal kurz aufMatch-Objekte und Gruppen eingegangen wer-den Match-Objekte werden von den Funktio-nen rematch() sowie research() zuruumlckge-geben wenn eine Zeichenkette bzw Teile davonauf den gegebenen Regulaumlren Ausdruck passen

Gruppen werden innerhalb von Regulaumlren Aus-druumlcken mit den runden Klammern (( und )) defi-niert um spaumlter auf die entsprechenden Teile derdurchsuchten Zeichenkette zuzugreifen Auch in-nerhalb eines Regulaumlren Ausdrucks kann so auf

vorherige Treffer verwiesen werden ndash darauf sollhier allerdings nicht weiter eingegangen werden

Zur Veranschaulichung von Match-Objekten undGruppen soll dieses kleine Beispiel eroumlrtert wer-den

text = Bernd Meier 29rg = recompile(r(Pltvorname gtw+)s+(Pltnachname gtw+)s+(Pltaltergtd+))match = rgsearch(text)if match

print matchgroups()print matchgroup(vorname)print matchstart(alter)

Hier gibt es nun einige Neuerungen w s undd sind vordefinierte Sets die haumlufig in Regulauml-ren Ausdruumlcken anzutreffen sind Sind keine wei-

teren Flags definiert steht w fuumlr alphanumeri-sche Zeichen und den Unterstrich _ Das Set istdamit aumlquivalent zu [a-zA-Z0-9_] s steht fuumlrsogenannte Whitespace-Zeichen [6] wie etwa Ta-bulatoren oder Zeilenumbruumlchen d wiederumist aumlquivalent zu dem Set [0-9]

Der Regulaumlre Ausdruck soll hier eine Zeichen-kette beschreiben die Vornamen Nachnamensowie Alter enthaumllt ndash jeweils durch beliebig vie-le Whitespace-Zeichen getrennt Um spaumlter be-quem auf die einzelnen Felder zugreifen zu koumln-nen werden entsprechende Gruppen definiert ndashalso etwa mit (w+) Die Gruppen sind in diesemBeispiel mit Namen versehen worden die Syntaxdazu lautet

(Pltgruppenname gtAUSDRUCK)

Es wurden oben also die Gruppen vornamenachname und alter definiert

Mittels rgsearch(text) wird nun ein Match-Objekt erzeugt ndash das allerdings nur wenn

der Regulaumlre Ausdruck tatsaumlchlich auf die Zei-chenkette passt Andernfalls geben researchund rematch wie bereits erwaumlhnt None zu-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 12

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

ruumlck Match-Objekte bieten nun vielfaumlltige Moumlg-lichkeiten die Uumlbereinstimmung von Zeichen-kette und Regulaumlrem Ausdruck auszuwertenmatchgroups() liefert ein Tupel mit allen Tref-fern Mittels matchgroup() kann aber auch aufeinzelne Gruppen zugegriffen werden ndash entwe-der uumlber den Index oder uumlber den Namen wennGruppen mit Namen erstellt wurden

Schlieszliglich wird hier beispielhaft noch die Metho-de matchstart() eingesetzt ndash sie gibt die Po-sition der Gruppe alter in der urspruumlnglichenZeichenkette an Entsprechend gibt es natuumlrlichauch die Methode matchend()

Abschlieszligende BemerkungenDie vorgestellten Beispiele sollten deutlich ma-chen dass Regulaumlre Ausdruumlcke wirklich kei-ne Zauberei sind Allerdings neigen die vielfaumll-tigen Moumlglichkeiten Abkuumlrzungen Quantifikato-ren und die vordefinierten Sets dazu Einstei-ger abzuschrecken und zu uumlberfordern Wer al-lerdings mit einfachen und uumlberschaubaren Zei-chenketten beginnt wird schnell einen Eindruckdavon gewinnen wie Regulaumlre Ausdruumlcke funk-tionieren und den Umgang damit nicht als son-derlich kompliziert empfinden Sich einen Grund-wortschatz an Regulaumlren Ausdruumlcken anzueig-nen ist auch daruumlber hinaus durchaus attraktivImmerhin finden sie nicht nur in Python sondernauch in eigentlich allen anderen Programmier-sprachen Verwendung ndash oftmals mit aumlhnlicheroder identischer Syntax [7] (Nicht nur) Linux-Benutzer werden daruumlber hinaus auch in der Kon-sole von ihrem Wissen profitieren ndash Werkzeuge

wie egrep erlauben es Dateien schnell und un-kompliziert mit Regulaumlren Ausdruumlcken abzuglei-chen

In jedem Fall ist ein Blick auf die Python-Dokumentation des re-Moduls empfehlens-wert [8] Hier werden die verschiedenen Quan-tifikatoren Sets und Methoden ausfuumlhrlich vor-gestellt Dort wird auch deutlich dass in diesemText tatsaumlchlich nur ein kleiner Teil der Syntaxele-mente besprochen worden ist die in RegulaumlrenAusdruumlcken zur Anwendung kommen

bdquo1000 Timesldquo copy by Randall Munroe (CC-BY-NC-25)httpxkcdcom558

LINKS

[1] httpwwwfreiesmagazindefreiesMagazin-2012-02

[2] httpdocspythonorglibraryrehtml

[3] httpcheckipdyndnsorg

[4] httpwwwregular-expressionsinfoexampleshtml

[5] httpsdewikipediaorgwikiEscape-Sequenz

[6] httpsdewikipediaorgwikiLeerraum

[7] httpsdewikipediaorgwikiPerl_Compatible_Regular_Expressions

[8] httpdocspythonorglibraryrehtml

Autoreninformation

Daniel Noumlgel (Webseite) beschaumlftigtsich seit drei Jahren mit Python Ihnuumlberzeugt besonders die intuitive Syn-tax und die Vielzahl der Bibliothekendie Python auf dem Linux-Desktop zueinem wahren Multitalent machen

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 13

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Perl-Tutorium ndash Teil 6 Objekte der alten Schule von Herbert Breunung

H ashes Referenzen Namensraumlume Die Stoffe der letzten drei Folgen kom-men sehr gelegen denn es sind die

noumltigen Zutaten um in Perl Objekte zu brau-en Auch wenn Anfaumlnger gleich mit Mooseund Co starten sollten so hat die alte Artder Objekterzeugung auch ihre Vorteile Sieist ungemein flexibel sehr breit im Einsatzund nicht zuletzt sparsamer an Speicher undschneller im Start Letztlich konnte sich dasin der naumlchste Folge vorzustellende Moosenur durchsetzen weil es dazu kompatibel ist

Hefte rausZuerst wird jedoch die letzte Hausaufgabe aufge-loumlst Es wurde nach einem bdquodrop in replacementldquofuumlr FileSlurp verlangt das auf YAML basiertGefragt war also ein Modul welches vom Haupt-programm anstatt FileSlurp mit use einge-bunden wird Der Rest hat genauso zu funktio-nieren ohne dass eine Zeile geaumlndert werdenmuss

Wenn entsprechende Subroutinen mit gleichemNamen exportiert werden ist das einfach In die-sem Beispiel heiszligt das Paket Datei und mussdaher in einer Datei mit Namen Dateipm abge-legt werden welche im gleichen Verzeichnis lie-gen muss wie das Skript Falls das Programmjetzt aufhoumlrt zu funktionieren so braucht maneinen Eintrag in der alias-Datei der Shell welcherin das Verzeichnis des Programms wechselt be-vor er es startet

1 use v5122 use warnings34 package Datei5 use Exporter6 use YAML7 our ISA = Exporter8 our EXPORT = qw(read_file write_file append_file)910 sub read_file 11 my $datei = shift12 YAMLLoadFile($datei) if -r $datei13 1415 sub write_file 16 my ($datei daten) = _17 YAMLDumpFile($datei daten)18 1920 sub append_file 21 my ($datei daten) = _22 if (-r $datei) 23 write_file($datei read_file($datei) daten)24 25 else write_file($datei daten) 26 2728 1

Listing 1 Dateipm

Zugegeben die Mischung aus deutschen undenglischen Befehlen ist nicht optimal und fuumlr pro-fessionelle Projekte nicht zu empfehlen AberAnfaumlngern wird es helfen ein Gespuumlr dafuumlr zu

entwickeln was eineklare und verstaumlndli-che Benennung aus-macht

YAML hat die Eigen-schaft mehrere Daten-saumltze in einer Datei ab-speichern zu koumlnnendie YAMLDumpFileals Array empfaumlngt Indiesem Modul Dateiwird jede Notiz (diespaumlter einen Hash be-ansprucht) als so einseparater Datensatzbehandelt Denn eswird nicht eine Re-ferenz auf das Ar-ray der Notizen zumSpeichern abgege-ben sondern das Ar-ray selbst In der Da-tei welche die Notizenenthaumllt sind die Noti-zen durch drei Binde-striche getrennt DaYAML-Dateien eine er-kennbare Endung ha-

ben sollten heiszligt es im Hauptprogramm zudemjetzt

my $datei = notizblockyml

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 14

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Weitere AumlnderungenDa der Autor seinen Rat befolgte und das ent-stehende Programm ernsthaft nutzt fielen sofortzwei Unbequemlichkeiten auf Notizen sind nurselten beim ersten Mal perfekt Um sie nach-traumlglich zu aumlndern wurden vier Zeilen eingefuumlgtc3neue Nachricht waumlre ein Beispiel fuumlr die-se Funktion in Aktion Der Text mit dem sichdas Programm meldet wurde entsprechend er-weitert dass er alle Befehle erwaumlhnt

Wenn man mehrere Befehle geben moumlchte wirdes schnell laumlstig das Programm mehrmals zustarten Also musste eine Endlosschleife her(while (1) ) und diese wird an derrichtigen Stelle mit exit verlassen Dieser Befehlkam letztens nicht an die Reihe da er wesent-lich seltener gebraucht wird Er beendet einfachdie gesamte Anwendung mit dem ihm folgendenWert Der entspricht meist der Nummer des Feh-lers der zum Abbruch fuumlhrte oder 0 wenn keinerauftrat

Damit hat das Projekt einen Stand erreicht dergut nutzbar ist Allerdings sollte der Code um-strukturiert werden da hier das oberste DRY-Prinzip (wiederhole dich nicht ndash siehe Folge 2)in mehreren Faumlllen uumlbertreten wurde Erstensreicht es wenn die Notizen lediglich beim Be-enden mit Enter gespeichert werden Und zwei-tens gibt es jetzt vier Stellen an denen gepruumlftwird ob eine vom Nutzer kommende Zahl ei-nem moumlglichen Index des Arrays entspricht Kla-rer Fall das muss in eine sub ausgelagert wer-den

sub valider_index my ($index $array) = _return 0 if $index = int $indexreturn 1 if $index gt -1 and y$index lt $array

Insgesamt sieht Programm jetzt so aus al-tes_bnpl

Die Zeit ist reif fuumlr ObjekteEtwas stimmt aber immer noch nicht ganz Diesub valider_index welche 1 zuruumlckgibt wenndie eingegebene Zahl ein moumlglicher Array-Indexist stoumlrt Solche Details haben mit der Lo-gik wann welche Notizfunktion ausgefuumlhrt wirdnichts zu tun und machen das Hauptprogrammnur unuumlbersichtlicher

Deswegen kam man bereits vor einigen Jahr-zehnten auf eine Idee die sich besonders beiWebanwendungen neuerdings auch bei GUIssehr bewaumlhrt hat Das Programm bekommt dreiSchichten Eine sorgt sich nur um die Daten (ge-nannt Model) eine kuumlmmert sich nur um die An-zeige (View) und der eigentliche Kern beschaumlftigtsich nur mit der Logik wann was zu machen istund wer wie auf was zu reagieren hat (Control-ler) Die Anfangsbuchstaben ergeben zusammenMVC [1] aber MC ist grad alles was hier benouml-tigt wird Es soll ein eigenes Objekt entstehendas sich um die Daten kuumlmmert das Laden undSpeichern aus der Datei sowie das Einfuumlgen Louml-schen Sortieren von Notizen und was noch kom-men mag

Perl und ObjekteAuch wenn seit Version 5 (1994) Perl als objek-torientiert ausgewiesen wird ist nicht wenigenleicht unwohl dabei Das hat gleich zwei GruumlndeZum einen wurde es sehr lange recht sparsameingesetzt Waumlhrend anderswo nur die Ankuumlndi-gung ausreichte man verwende OOP (Objektori-entierte Programmierung) um der Zustimmungdes Managements sicher zu sein war man imPerllager wesentlich pragmatischer und auch rea-listischer Fuumlr UNIX-Scripte hat man den bdquoneumo-dischen Kramldquo eh nie gebraucht Selbst MeisterEdsger Dijkstra meinte bdquoObjekte sind eine aus-sergewoumlhnlich schlechte Idee welche nur ausKalifornien hat stammen koumlnnenldquo [2] Zum ande-ren war die OOP in Perl nicht gerade auf Anfaumln-gerfreundlichkeit ausgelegt Man musste schoneinen guten Teil der Sprache kennen um sieuumlberhaupt einsetzen zu koumlnnen Auch fordertees mehr Schreibarbeit als noumltig Ironischerwei-se lieszlig sich Larry Wall von Python2-Objektenzumindest semantisch inspirieren waumlhrend vonder Seite gerne eine klare Uumlberlegenheit behaup-tet wird Objektorientierung ist generell ein wei-tes widerspruumlchliches und ideologisch vermintesFeld OOP bedeutet in Smalltalk etwas anderesals in Java oder C++ Eine schoumlne Uumlbersicht dar-uumlber wie sich Perl zu all dem verhaumllt bietet Da-mian Conways Buch bdquoObject Oriented Perlldquo Derehemalige Lehrstuhlinhaber fuumlr objektorientierteProgrammierung zeigt darin dass Perl nicht je-den Schoumlnheitspreis gewinnen kann aber dassmehr moumlglich ist als anderswo Leider stammtdas Buch aus der Zeit vor Moose Spaumltestens

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 15

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

seit dieses Modul sich vor zwei Jahren als Stan-dard oder zumindest als der offiziell empfohleneWeg durchgesetzt hat [3] kann Perl ohne Augen-zucken als objektorientierte Sprache bezeichnetwerden die vieles uumlberrundet hat was sich sonstso objektorientiert nennt

AufbauErst einmal sind Klassen fast normale ModuleDaher laumlsst sich die Hausaufgabe (zufaumlllig) zudem vorgeschlagenen objektorientierten Modulumbauen Am geschicktesten wird mit der Me-thode zur Erzeugung des Objektes (sie heiszligt fastimmer new hier fuumlr einheitlich deutsche Benen-nung neu) angefangen und aller Exporter-Codegeloumlscht

sub neu my ($klasse $datei) = _my $selbst = bless ( $klasse)$selbst-gtdatei_lesen($datei) if defined $datei$selbst -gtnotizen = []

unless exists $selbst -gtnotizenreturn $selbst

Einzig zu erklaumlren ist hier das bless welchesder entscheidende Befehl ist um Objekte zu er-zeugen Es ist auch der einzige Befehl der fuumlrdie OOP hinzukam und vielleicht sogar der ein-zige bei dem Larry Walls christliche Ader sicht-bar mit ihm durchging Indem ein leerer Hashmit dem Namen des aktuellen Paketes bdquogeseg-netldquo wird verwandelt er sich zu einem Objekt (Er-gebnis dieser Kulthandlung) Alle Attribute (Da-

ten eines Objektes) werden unter Schluumlsselngespeichert und abgerufen wie bei jedem an-deren Hash auch ($objekt-gtrsquoattributnamersquo)Das ein Objekt im Grunde ein Hash ist siehtman auch wenn man versucht $objekt di-rekt per say auszugeben was in einer Ausga-be wie Daten=HASH(0x9909e48) resultiert ref$objekt gibt einzig den Klassennamen (hierDaten) zuruumlck In dem anfaumlnglichen (hier lee-ren) Hash hinter dem bless lassen sich natuumlrlichauch bereits die ersten Werte eintragen

Die Methoden dieses Objektes sind die subdes Paketes Weil bei einem Aufruf einerMethode ($objekt-gtmethode()) das Objektselbst immer als erster Wert uumlbergeben wirdund die eigentlichen Parameter folgen (in _)

kann die Methode auf dieAttribute dieses speziellenObjektes zugreifen Vie-le Klasseninstanzen ru-fen ja dieselbe MethodeNimmt man die Schreibwei-se Paketname-gtMethodewird folgerichtig der Paket-name als erster Parameter

uumlbergeben was die restliche offene Frage zursub neu klaumlrt

Die Methode datei_lesen ist eine leichte Ab-wandlung des vorigen read_file und die vorletz-te Zeile wird benoumltigt um sicherzustellen dassein Attribut Notizen als Arrayreferenz vorhandenist Das spart spaumltere Pruumlfungen Wer alle sub ei-nes Namensraumes einsehen moumlchte nimmt da-fuumlr den Hash Paketname

UNIVERSAL und VererbungUm zu fragen ob ein Objekt diese oder je-ne Methode hat benutzt man die Metho-de can Die bekommt jedes Objekt vom Ur-vater aller Klassen der Klasse UNIVERSAL$objekt-gtcan(rsquodatei_lesenrsquo) wuumlrde eineCodereferenz auf die Methode abgeben an-dernfalls undef -gtVERSION zeigt die Versions-nummer was aber nur auf Konvention beruhtEs kann aber sehr nuumltzlich werden da z B-gtVERSION(12) mit seinem positiven Ergebnishilft sicherzustellen dass mindestens Version12 vorhanden ist Hilfreich und gut ist auch dieUNIVERSAL-Methode isa (lies is a ndash ist ein) Siebeantwortet die Frage ob eine Klasse von jenerabgeleitet wurde Ableiten bedeutet Eine Klassebekommt alle Methoden einer anderen Attributewerden in Perl nicht vererbt Die Liste aller Pake-te von der eine Klasse erbt ist in der Paketva-riable ISA enthalten Das erhellt endlich die Be-deutung von our ISA = qw(Exporter) Da-mit wurde in der letzten Folge der Exportierme-chanismus von Exporter geerbt Aber eigentlichsollte Anfaumlngern nicht empfohlen werden solchesensiblen Innereien anzufassen Es wurde letz-tens lediglich vermieden vor der Zeit neue Prag-mas ohne Erklaumlrung einzufuumlhren Der beste Wegum von einer Klasse zu erben ist heute

use parent Exporteruse base Exporter

Die zweite Variante ist noch sehr verbreitet funk-tioniert meist gleich ist aber wesentlich speicher-intensiver Anstatt eines Strings kann hinter dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 16

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Pragmanamen auch ein Array folgen Denn ge-nau wie C++ oder Python unterstuumltzt Perl auchMehrfachvererbung Manche Sprachen wie Ja-va tun das mit Absicht nicht da es zu Proble-men fuumlhren kann wenn z B zwei Klassen vonder selben Klasse erben (gemeinsame Vorfah-ren haben) und die eigene Klasse beide beerbtWenn beide oder alle drei Vorfahren jeweils un-terschiedliche Methoden unter dem gleichen Na-men besitzen wird es sehr interessant Dazu imnaumlchsten Teil mehr Es sei nur erwaumlhnt dassPerl auch den neueren C3-Algorithmus kenntum mit solchen Faumlllen umzugehen FolgendesPragma aktiviert ihn der zweite Aufruf wechseltzum Standard zuruumlck

use mro c3use mro dfs

Der Unterschied liegt darin dass unter C3 erstbeide Kinder abgefragt werden und zuletzt derUrahn Normal ist es den ersten Elter und danndessen Ahnen und zuletzt den anderen direktenVorfahren Schreibt man nur use mro bekommtman damit eine ganze Reihe an subs um die Vor-fahren zu besuchen In einfachen Faumlllen reichtSUPER jedoch aus Um die neu-Methode einesbeerbten Vorgaumlngers zu erweitern schreibt man

sub neu my ($klasse ) = _my $selbst =

$klasse-gtSUPERneu()

Zusammenfassung und VorschauDieses Mal kamen lediglich der Befehl bless so-wie die Pragmas parent und mro hinzu Dies warAbsicht denn es dauert ein wenig bis das Ge-hirn alle Konsequenzen des heute Beschriebe-nen verstanden hat Das Lesen und Experimen-tieren mit dem jetzigen Stand wird dabei helfen

Als Hausaufgabe soll lediglich die Funktionzufuege_notiz so erweitert werden dass mit5lalala direkt an die fuumlnfte Position eingefuumlgtwerden kann Die alte Art anzufuumlgen soll weiter-hin moumlglich sein Das ist mit drei Zeilen getanerfordert aber ein Verstaumlndnis vieler bisher be-schriebener Konzepte und Details

Zum Abschluss die aktuelle Version des Skriptsbnpl und ein Link auf das Modul Datenpm

bdquoBusiness Idealdquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom827

LINKS[1] httpsdewikipediaorgwikiModel_View_

Controller[2] httpwww-cs-studentsstanfordedu~blynn

cch02html[3] httpwwwperlorgaboutwhitepapersperl-

object-orientedhtml[4] httphyperpolyglotorgscripting

Autoreninformation

Herbert Breunung (Webseite) istseit sieben Jahren mit AntwortenVortraumlgen Wiki- und Zeitungsartikelnin der Perlgemeinschaft aktiv

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 17

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Selenium meets Java von Nico Maikowski

D as Framework Selenium [1] ist dafuumlrgedacht dass ein Tester eine Weban-wendung automatisiert testen kann

Im ersten Artikel in freiesMagazin 022012 [2]wurde das Browserplugin fuumlr Firefox vorge-stellt Der folgende Artikel beschaumlftigt sichmit dem Java-Framework

Das FrameworkDas Framework kann fuumlr die verschiedenen Pro-grammiersprachen heruntergeladen werden [3]Bei der Nutzung sollte direkt ein angepassterAktualisierungszyklus definiert werden da dasFramework stetigen AumlnderungenErweiterungenunterworfen wird teils sogar im Wochentakt Ent-sprechend muss bei der eigenen Testplanung dieAktualisierung des Frameworks als stetige Arbeitund Problemquelle angesehen und im Change-prozess [4] beachtet werden Wie bereits er-waumlhnt wird in diesem Artikel speziell auf Javaeingegangen Als Entwicklungsumgebung dientNetbeans in der Version 71

Der Fuumlnf-Minuten-EinstiegDas folgende Beispiel als Einstieg in das Frame-work mit einer ersten kleinen Testprozedur ist inder Dokumentation von Selenium zu finden [5]

Vorab noch einige Hinweise zur generellen Vor-gehensweise der Testdurchfuumlhrung Prozedurenkoumlnnen direkt als main einer Klasse program-miert werden Wenn in einer Klasse mehrereTestprozeduren durchzufuumlhren sind oder der Test

in kleinere Teilaufgaben gesplittet werden kannso bietet es sich an einzelne Funktionen dafuumlr zuprogrammieren und in main nacheinander aufzu-rufen In den Beispielen wurden die Header vonJava weggelassen davon ausgehend dass derstrukturelle Aufbau einer Javaklasse bekannt ist

1 package orgopenqaseleniumexample23 import orgopenqaseleniumBy4 import orgopenqaseleniumWebDriver5 import orgopenqaseleniumWebElement6 import orgopenqaseleniumfirefoxFirefoxDriver7 import orgopenqaseleniumsupportuiExpectedCondition8 import orgopenqaseleniumsupportuiWebDriverWait910 public class Selenium2Example 11 public static void main(String[] args) 12 WebDriver driver = new FirefoxDriver()13 driverget(httpwwwgooglecom)14 WebElement element = driverfindElement(Byname(q))15 elementsendKeys(Cheese)16 elementsubmit()17 Systemoutprintln(Page title is + drivergetTitle())18 (new WebDriverWait(driver 10))until(new ExpectedCondition ltBoolean gt()19 public Boolean apply(WebDriver d) 20 return dgetTitle()toLowerCase()startsWith(cheese)21 22 )23 Systemoutprintln(Page title is + drivergetTitle())24 driverquit()25 26

Listing 1 Selenium2Examplejava

Zuerst wird in der dritten Zeile der KlasseSelenium2Example der gewuumlnschte Webdriverfuumlr den Webbrowser definiert hier im Detail derWebdriver fuumlr den Firefox-Webbrowser Somitwird dann die Instanz des Webbrowsers gestar-tet In der folgenden Zeile wird mit get dem

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 18

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

Webbrowser mitgeteilt welche Webseite aufgeru-fen werden soll

In den weiteren drei Zeilen wird in einer Variablenelement das Eingabefeld fuumlr den Suchbegriff hin-terlegt Mit dem hinterlegten Element kann dasTestskript dann eine Eingabe mit sendkeys sen-den und mit dem submit die Durchfuumlhrung derSuche anstoszligen

In den folgenden Zeilen wurde eine Wartefunk-tion integriert Fuumlr die Komplettierung des Bei-spiels ist die Stelle richtig fuumlr eine dauerhafteNutzung im Test sollte man diese allerdings ineine eigene Funktion auslagern In dieser War-teschleife wird im Webbrowser darauf gewartetdass der Titel der Seite (hier die Ergebnisseite)mit dem Suchbegriff cheese beginnt

Wenn dies der Fall ist wird die Warteschleife be-endet und am Ende der Seitentitel auf der Konso-le ausgegeben

Neben der Initialisierung des Webbrowsers (sie-he Zeile 3) ist es wichtig diesen auch kontrol-liert zu schlieszligen Dies wird mit quit gemachtNur wenn das quit ausgefuumlhrt wird schlieszligt sichauch die Instanz des Webbrowsers Sollte diesbeispielsweise bei einem Testabbruch innerhalbder Prozedur nicht durchgefuumlhrt werden so blei-ben die Instanzen geoumlffnet und muumlssen durchden Anwender manuell geschlossen werden

Die ObjekterkennungWie im obigen Beispiel schon gezeigt muumlssendie einzelnen Elemente einer Webseite aumlhnlich

wie bei einem GUI-Test erkannt werden um In-teraktionen auszufuumlhren Hierfuumlr stehen verschie-dene Webtechniken zur Verfuumlgung die jede fuumlrsich Eigenheiten hat

Die effizienteste Methode ist das Finden bzw In-teragieren mit einer ID da sich diese fuumlr jedesElement eindeutig definieren laumlsst Dies sollte al-lerdings bei der Erstellung der HTML-Seite vor-gesehen werden

ltdiv id=coolesWidgetEvahgt ltdivgt

Die Erkennung eines Elements im Javacode folgtimmer den gleichen Regeln

WebElement element = driveryfindElement(Byid(coolesWidgetEvah))y

findElement sucht auf der gerade geoumlffnetenWebseite und mit By kann ausgewaumlhlt werdenwelcher Objekttyp (hier die ID) gesucht werdensoll Entsprechend wird fuumlr die folgenden Ele-mente nur der Byid-Aufruf veraumlndert

Sollte auf einer Webseite mehr als ein Ele-ment mit der gleichen ID definiert sein so wirdzunaumlchst immer nur das erste Element gefun-den und weiterverarbeitet Innerhalb von Javaund for-Schleifen kann man diese ggf gewollteHTML-Programmierung ausnutzen um mehreregleiche Elemente in Reihenfolge (Listenstruktu-ren) aufzurufen und zu bearbeiten

Als Naumlchstes gibt es noch die Moumlglichkeit einElement mit einer Klasse zu finden Diese Moumlg-

lichkeit und die folgende bieten sich bei DOM-Elementen an [6]

ltdiv class=cheesegtltspangtCheddar ltspangt

ltdivgt

WebElement frame = driverfindElement(yByclassName(cheese))

Den Tag-Namen kann man ebenfalls als einDOM-Element finden

ltiframe src=gtltiframegt

WebElement frame = driverfindElement(yBytagName(iframe))

Aber auch die klassischen HTML-Strukturen wieder Name und ein Link-Text lassen sich findenund als Element nutzen

ltinput name=cheese type=textgtlta href=httpwwwgooglecomsearchyq=cheesegtcheese ltagt

WebElement cheese = driverfindElementy(Byname(cheese))WebElement cheese = driverfindElementy(BylinkText(cheese))

Wer nicht den ganzen Linktext eingeben willkann mit partialLinkText einen Teil eines gan-zen Linktextes suchen

lta href=httpwwwgooglecomsearchyq=cheesegtsearch for cheese

ltagt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 19

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

WebElement cheese = driverfindElementy(BypartialLinkText(cheese))

Zum Schluss sollen noch zwei Moumlglichkeiten ge-zeigt werden deren Komplexitaumlt sich auf groszligenWebseiten erhoumlht aber bei unsauberem HTML-Code die groumlszligten Wiedererkennungschancenbieten das Finden der Elemente mit CSS undXPath

ltdiv id=foodgtltspan class=dairygtmilkltspangtltspan class=dairy agedgtcheese ltspangtltdivgtltinput type=text name=example gt

WebElement cheese = driverfindElement(BycssSelector(food spandairyaged))WebElement input = driverfindElement(Byxpath(input))

Diese und weitere Beispiele sowie Beschreibun-gen finden sich in der Dokumentation [7]

Die verschiedenen WebdriverWie im ersten Beispiel zu sehen wurde dort einWebdriver fuumlr Firefox verwendet Neben diesengibt es noch weitere fuumlr andere Browser und An-wendungsgebiete

Der HtmlUnitDriver ist das Leichtgewicht un-ter den Webdrivern da er ohne GUI auskommtEr ist auszligerdem in Java implementiert und damitplattformunabhaumlngig Zum Verhaumlngnis wird ihmdass er im Gegensatz zu den anderen Webdri-vern nur bedingt mit JavaScript umgehen kann

Der naumlchste zu erwaumlhnende ist der oben bereitsgenutzte Webdriver fuumlr Firefox Bei der Testaus-

fuumlhrung wird eine Instanz von Firefox gestartetund das Testskript in dieser ausgefuumlhrt Die Be-tonung liegt hier auf bdquoeigener Instanzldquo Es ist moumlg-lich zwei Anwendungsfenster geoumlffnet zu habenund sogar mit der primaumlren Instanz auf die glei-che Webseite zuzugreifen Dies kann bei einerTestdurchfuumlhrung von Nutzen sein wenn der Tes-ter gleichzeitig Ergebnisse des Skripts kontrollie-ren moumlchte Des Weiteren lassen sich mit demFirefox-Webdriver alle vorhandenen Profile desWebbrowsers nutzen und waumlhrend der Testaus-fuumlhrung auch veraumlndern Hierzu nachfolgend einBeispiel zur Einbindung eines vorhandenen Pro-fils [5]

ProfileIni allProfiles = new ProfilesIni()FirefoxProfile profile = allProfilesgetProfile(WebDriver)WebDriver driver = new FirefoxDriver(profile)

Eines haben auch die folgenden Webdriver fuumlrdie bdquoechtenldquo Webbrowser gemeinsam Sie oumlffneneine tatsaumlchliche Instanz von diesen und die Test-durchfuumlhrung kann durch den Anwender direktnachvollzogen werden Dieser Punkt wird im wei-teren Verlauf nicht weiter wiederholt

Der Internet Explorer hat grob betrachtet mehrNachteile denn er funktioniert zum einen aus-schlieszliglich unter Microsoft Windows Man legtsich hier also neben einem Webbrowser auchauf das auszufuumlhrende Betriebssystem fest Zumanderen wird XPath als Identifikationsmethodiknicht unterstuumltzt Bei CSS muss mindestens die

Version 8 des Internet Explorers installiert seindenn vorherige unterstuumltzen dies auch nicht

Fuumlr Chrome gibt es ebenfalls einen WebdriverDieser wird nicht von Selenium verwaltet son-dern von Google selbst [8] Vorteil ist dass die-ser auf verschiedenen Plattformen laumluft und mitseinem Grundaufbau als Webkit-Browser eben-so als Referenz-Testobjekt fuumlr Safari genutzt wer-den kann

Auch der Webdriver fuumlr Opera wird von OperaSoftware selbst zur Verfuumlgung gestellt [9] undnicht von Selenium Bisher sind hier keine auffaumll-ligen Vor- oder Nachteile auszliger den bisher schongenannten (bdquoechtesldquo Browsen in eigener Instanzaber langsamer als HtmlUnitDriver) bekannt

Zusaumltzlich bei speziel-lem Bedarf existierenweitere Webdriver fuumlrAndroid und iPhone

Das PotentialWie viele Moumlglichkeiten sich tatsaumlchlich mit ei-nem solchen Test-Framework zur Automatisie-rung in einer Programmiersprache offenbarensoll in einem weiteren Beispiel angedeutet wer-den Aufgezeigt wird eine komplexere Suche inden erweiterten Sucheigenschaften von GoogleHierzu muumlssen mehrere Felder gefuumlllt und Optio-nen eingetragen werden

Nachfolgend die Beschreibung der Testschritteunter Angabe der dazugehoumlrigen Zeilen im Quell-code

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 20

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

PROGRAMMIERUNG

1 public class Selenium2More 2 public static void main(String[] args) 3 WebDriver driver = new FirefoxDriver()4 try 5 driverget(httpwwwgooglede)6 driverfindElement(Byxpath([id=gbgs5]))click()7 driverfindElement(Byid(gmlas))click()8 helping(Byxpath([id=opt-icon]))9 driverfindElement(Byxpath([id=opt-icon]))click()10 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtabletbodytrtd[2]divinput))sendKeys(cheese)11 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[2]tbodytr[2]td[2]select))sendKeys(d)12 driverfindElement(Byxpath(htmlbodytable[2]tbodytrtdtabletbodytry

tddivformdivtable[3]tbodytrtd[2]select))sendKeys(i)13 driverfindElement(BycssSelector(html body table tbody tr tdtable tbody try

td divouter-box formblock div table tbody tr tdinput))click()14 drivergetPageSource()contains(Marie Marolles)15 finally 16 driverquit()17 18

Listing 2 Selenium2Morejava

Bis Zeile 5 findet sich noch der Programmrahmenvon Java und das Initiieren des Testobjekts mitdem Aufruf der Webseite wwwgooglede Diesist bereits bekannt aus dem ersten Beispiel

Dann wird das erweiterte Menuuml der Webseite inZeile 6 geoumlffnet zu finden in der oberen rechtenEcke In Zeile 7 wird in dem geoumlffneten Menuuml derEintrag zur bdquoerweiterten Sucheldquo geklickt

In Zeile 8 wurde die Wartefunktion aus dem ers-ten Beispiel in eine eigene Funktion ausgelagertum diese ggf oumlfter waumlhrend der Testdurchfuumlh-rung aufrufen zu koumlnnen Als Uumlbergabeparame-ter muss das Webelement angegeben werden

auf welches gewartet werden soll Es bietet sichan das Webelement zu nehmen mit dem alsnaumlchstes interagiert werden soll

Nun werden die Optionen in Zeile 9 im unte-ren Teil der bdquoerweiterten Sucheldquo aufgeklappt Alsnaumlchstes folgt die Eingabe des Suchbegriffs

In Zeile 11 wird im Auswahlfeld mit der Eingabevon D die daumlnische Sprache ausgewaumlhlt In Zeile12 wird jetzt noch das Datum eingeschraumlnkt aufTreffer fuumlr die letzten 24 Stunden In Zeile 13 wirddie Schaltflaumlche zum Suchen betaumltigt In Zeile 14wird noch die Suchseite auf ein Suchergebnis ge-pruumlft

FazitDie Moumlglichkeiten des Frameworks sind vielfaumlltigund gehen uumlber das bdquoeinfacheldquo Mausklicken aufeiner Webseite hinaus Es laumlsst sich sogar derHTML-Quellcode zur Analyse und weiteren Ver-arbeitung (z B Aufbau von Listen Hashes etc)auslesen Nur das Testobjekt der Webseite limi-tiert den Tester

LINKS[1] httpseleniumhqorg[2] httpwwwfreiesmagazindefreiesMagazin-2012-

02[3] httpseleniumhqorgdownload[4] httpsdewikipediaorgwikiChange_Manage

ment_(ITIL)[5] httpseleniumhqorgdocs03_webdriverhtml[6] httpsdewikipediaorgwikiDocument_Object_

Model[7] httpseleniumhqorgdocs03webdriverhtml

commands-and-operation[8] httpcodegooglecompchromedriver[9] httpwwwoperacomdevelopertoolsoperadri

ver

Autoreninformation

Nico Maikowski beschaumlftigt sichseit laumlngerem beruflich mit Testsund wurde so auch auf Seleniumaufmerksam

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 21

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

DOKUMENTATION

Dokumentenmanagement mit LetoDMS von Uwe Steinmann

D okumentenspeicherung -austauschund -archivierung bleibt ein vorherr-schendes Thema in der IT Die Spanne

der Moumlglichkeiten reicht von einer gemein-sam genutzten Festplatte bis zu ausgewach-senen Dokumenten-Management-Systemen(DMS) die eine rechtskonforme Ablage vonDokumenten ermoumlglichen Irgendwo in die-ser Spanne findet man LetoDMS [1] dessenHistorie bis 2002 zuruumlck reicht Damals nochunter dem Namen mydms

Redaktioneller Hinweis Der Artikel bdquoDokumen-tenmanagement mit LetoDMSldquo erschien erst-mals bei Pro-Linux [2]

LetoDMS ist in PHP implementiert und nutztMySQL als Datenbank Andere Datenbankensind grundsaumltzlich moumlglich werden aber bis-her nicht unterstuumltzt Die Dokumente werden imDateisystem abgelegt und alle weiteren Meta-Daten in der Datenbank LetoDMS organisiertdie Dokumente in Ordnern also genauso wie injedem Dateisystem Dokumente haben die uumlbli-chen Meta-Daten wie beispielsweise Autor Ti-tel Stichworte Daruumlber hinaus koumlnnen verschie-dene Versionen eines Dokuments abgelegt wer-den Dokumente koumlnnen in Beziehung gesetztwerden und man kann ihnen weitere Dateienanhaumlngen Ein Pruumlfungs- und Freigabesystemerlaubt einen einfachen Workflow Das Systemverfuumlgt uumlber eine Web-Schnittstelle kann aberauch uumlber WebDAV angesprochen werden Dar-

uumlber hinaus kann der Kern von LetoDMS alsPEAR-Paket in eigenen Anwendungen genutztwerden Auf diese Weise ist beispielsweise ei-ne Typo3-Extension und eine Reihe von Hilfspro-grammen entstanden Das Rechtemanagementfunktioniert wie in jedem Dateisystem uumlber Grup-pen und Benutzer mit Lese- und Schreibrechtenerlaubt aber auch einen Gastzugang ohne An-meldung

InstallationDie wohl einfachste Moumlglichkeit LetoDMS aufdem eigenen Rechner auszuprobieren bestehtunter Debian oder Ubuntu In Debian testingexistieren seid kurzem die Pakete letodms undphp-letodms-core Nach der Installation uumlberdie Paketverwaltung ist die Web-Oberflaumlche un-ter httplocalhostletodms erreichbar undmit dem Login bdquoadminldquo (Passwort bdquoadminldquo) kannman sich anmelden

Eine eigene Installation aus den Quellen istaber ebenso einfach Voraussetzung ist einfunktionierendes PHP ein Apache-Webserverund MySQL als Datenbank Benoumltigt wer-den dazu die Pakete LetoDMS-322targzund LetoDMS_Core-322tgz von Source-Forge [3] In ein Verzeichnis unterhalb derHTTP-Documentroot werden die beiden Archi-ve entpackt Dabei muss sichergestellt wer-den dass der Webserver auf das VerzeichnisletoDMS-ltversiongtconf schreibenden Zugriffhat Die anderen Verzeichnisse sollten aus Si-

cherheitsgruumlnden nicht durch den Web-Serverbeschrieben werden koumlnnen Da es sich beiLetoDMS_Core-322tgz um ein PEAR-Pakethandelt [4] kann die Installation auch alternativuumlber

pear install LetoDMS_Core -322ytgz

erfolgen Damit spaumlter alles glatt laumluft benoumltigtman auch noch ADOdb [5] und das PEAR-PaketLog [6] Beides befindet sich allerdings auch invielen Linux-Distributionen und muss so instal-liert werden damit es spaumlter uumlber den PHP-Include-Path gefunden werden kann Der Pfad zuADOdb kann alternativ auch bei der Konfigurati-on von LetoDMS eingestellt werden Fuumlr das Log-Paket geht dies nicht

Im naumlchsten Schritt kann man seinen Browserschon auf die Installationsseite von LetoDMShttplocalhostltPfadLetoDMSgtinstallschicken Dort wird man mit einem kurzenText begruumlszligt der einen auffordert die DateiENABLE_INSTALL_TOOL in dem Ordner conf an-zulegen Erfolgt dies kann uumlber den Link amEnde der Seite auf ein Formular mit den grundle-genden Installationseinstellungen verzweigt wer-den

Man sollte nicht erschrecken wenn hier bereitseine Warnung erscheint Sie ist fuumlr die weite-re Installation zunaumlchst nicht hinderlich Eini-ge der Felder sind bereits ausgefuumlllt und koumln-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 22

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

DOKUMENTATION

nen so uumlbernommen werden Kritisch ist vorallem das Verzeichnis fuumlr die Dokumente (Con-tent directory) und der Zugang zur DatenbankDas Content-Verzeichnis sollte aus Sicherheits-gruumlnden nicht unterhalb der http-root liegenmuss aber durch den Nutzer unter dem derWebserver laumluft beschrieben werden koumlnnenum spaumlter darin Dokumente ablegen zu koumlnnenWird das Content-Verzeichnis dennoch unter-halb der http-root eingerichtet dann sollte eszumindest durch eine htaccess-Datei vor lesen-dem Zugriffen geschuumltzt werden Voreingetragenist im uumlbrigen das Verzeichnis von LetoDMSmit angehaumlngtem data Das Verzeichnis zuCore letoDMS muss nur dann eingetragenwerden wenn LetoDMS_Core nicht bereits als

Anmeldeformular von LetoDMS

Ansicht des DMS nach der Anmeldung

PEAR-Paket installiert ist undsomit ohnehin uumlber den PHP-Include-Pfad gefunden wirdGleiches gilt im uumlbrigen fuumlr denPfad zu ADOdb

Der Rest der Installation be-zieht sich auf den Zugang zurDatenbank Die Datenbank-Tabellen koumlnnen von Le-toDMS eigenstaumlndig ange-legt werden Dazu muss le-diglich die Checkbox bdquoCrea-te database tablesldquo ange-hakt werden Alternativ da-zu kann auch die Datei

installcreate_tablessql direkt importiertwerden Zuvor muss allerdings eine Datenbankangelegt und einem Datenbankbenutzer Zugangdarauf gewaumlhrt werden In der MySQL-Konsolekann dies z B uumlber

create database letodmsgrant all privileges on letodms yto letodmslocalhost identified by ysecret

erfolgen

Den gewaumlhlten Datenbanknamen Benutzerna-men und Passwort traumlgt man in dem Formular einund schickt es ab

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 23

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

DOKUMENTATION

Anlegen neuer Dokumente

Sofern jetzt keine Fehler gemeldet werdenist die Grundinstallation damit beendet Jetztmuss man nur noch die zuvor angelegte DateiENABLE_INSTALL_TOOL loumlschen und auf die An-meldeseite springen um sich dort mit dem Loginbdquoadminldquo (Passwort bdquoadminldquo) anzumelden

Bevor man jedoch Dokumente hochladen undOrdner erzeugen kann sollte man unter bdquoAdmin-Tools rarr Settingsldquo die weiteren Einstellungenuumlberpruumlfen Auf der Seite unter bdquoSystemldquo fin-det man nochmal die bereits in der Installation

Die Konfigurationsmoumlglichkeiten von LetoDMS

gemachten Einstellungen der Verzeichnisse unddes Datenbankzugriffs Eine kurze Beschreibungder moumlglichen Einstellungen erhaumllt man wennder Mauszeiger uumlber dem Einstellungsfeld steht

Im Bereich bdquoSiteldquo sollte zunaumlchst die Volltextsu-che ausgeschaltet sein weil sie ohnehin nochnicht komplett installiert ist In diesem Bereichsind auch Einstellungen zum Aussehen und An-passen der Bedienoberflaumlche untergebracht Al-le weiteren Einstellungen koumlnnen zunaumlchst in derVoreinstellung verbleiben

Anlegen von Ordnern und Hochladenvon DokumentenZum Anlegen von Dokumenten oder Ordnernwechselt man zunaumlchst in die DokumentenOrdner-Sicht Diese erreicht man immer uumlberden Link bdquoContentldquo in der obersten Kopfzeile Diemoumlglichen Funktionen befinden sich in dem Me-nuuml unterhalb der Kopfzeile Zwischen Menuuml undKopfzeile wird daruumlber hinaus der aktuell benutz-te Pfad im Dokumenten-Managemensystem aus-geben

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 24

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

DOKUMENTATION

Formular zur Einrichtung von Benachrichtigungen

Das Anlegen neuer Ordner ist wenig spektakulaumlrBeim Anlegen von Dokumenten gibt es deutlichmehr Einstellungsmoumlglichkeiten Von Interesseist hier insbesondere die Moumlglichkeit Dokumentebeliebiger Groumlszlige hochladen zu koumlnnen sofernder bdquoLarge File Supportldquo in den Einstellungen an-gehakt wird Ist dies der Fall dann erscheint amBeginn der regulaumlren Upload-Seite ein Hinweisauf eine alternative Upload-Seite auf der sichein Java-Applet befindet um den Upload auszu-fuumlhren Das in den Einstellungen als bdquoDirectory

for partial uploadsldquo bezeichnete Verzeichnis istim uumlbrigen genau hierfuumlr notwendig In diesemVerzeichnis wird waumlhrend des Uploads die inStuumlcke passender Groumlszlige unterteilte Datei abge-legt um am Ende des Uploads daraus das Doku-ment wieder herzustellen Die Groumlszlige der Stuumlckewird im Uumlbrigen auch in den Einstellungen unterbdquoPartial filesizeldquo gesetzt Diese Dateigroumlszlige darfdie maximale Upload-Begrenzung die von PHPvorgegeben ist nicht uumlberschreiten Das Hochla-den mehrerer Dokumente in einem Arbeitsschritt

erfolgt ebenfalls uumlber dieses Applet Alternativkann dieses auch uumlber den Eintrag bdquoAdd multipleDocumentsldquo in der Menuumlzeile erreicht werdenDokumente koumlnnen einer oder mehreren ver-schiedenen Kategorien zugeordnet werden Dar-uumlber hinaus kann auch ein Ablaufdatum gesetztwerden Besonders maumlchtig ist die Funktion desPruumlfens und Freigebens von Dokumenten Bei-des kann sowohl von einem einzelnen Benutzerals auch von einer beliebigen Gruppe erfolgenBei der Freigabe oder Pruumlfung durch eine Grup-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 25

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

DOKUMENTATION

pe reicht es wenn einer der Gruppe die Freigabeerteilt oder die Pruumlfung bestaumltigt

BenachrichtigungenEine weitere Besonderheit von LetoDMS sindbdquoNotification Listsldquo Dies sind Listen fuumlr Be-nachrichtigungen bei Dokumentenaumlnderungenin die sich jeder Benutzer eintragen kannDie Benachrichtigung erfolgt per E-Mail Je-der Benutzer kann als Administrator in die

Formular fuumlr die Suche im Dokumenten- und Ordnerbestand

Benachrichtigungsliste eintragenwerden Als normaler Benutzer ge-lingt das nur fuumlr sich selbst und alleGruppen in denen man Mitglied ist

Wird ein Dokument danach z B ver-schoben geloumlscht oder eine neueVersion eingestellt dann erhaumllt jederBenutzer auf der Benachrichtigungs-liste eine E-Mail mit den Aumlnderun-gen

ZugriffskontrolleNatuumlrlich kann auch der Zugriff aufDokumente und Ordner reglemen-tiert werden Grundsaumltzlich sind Ord-ner und Dokumente fuumlr alle lesbarDavon abweichen kann man mit ei-ner fuumlr das Dokument oder denOrdner eigenen Access-List Siebeinhaltet einen voreingestellten Zu-griffsmodus und davon abweichendeinstellbare Zugriffsmodi fuumlr Benut-zer und Gruppen Eine Access-Listkann daruumlber hinaus auch an dieUnterordner und Dokumente vererbt

werden Damit lassen sich leicht ganze Bereichedes DMS auch vor lesendem Zugriff schuumltzen

VersionenFruumlher oder spaumlter muumlssen Dokumente durchneue Versionen ersetzt werden Die passendeFunktion dafuumlr findet man im Menuuml unter bdquoUp-date Documentldquo LetoDMS verwirft eine vorheri-ge Fassung des Dokuments nicht sondern legteine neue Version an die wiederum durch den

bereits beschriebenen Pruumlfungs- und Freigabe-prozess geschickt werden kann Auf die alten Ver-sionen kann weiterhin zugegriffen werden Siekoumlnnen aber auch durch den Benutzer geloumlschtwerden

Kategorien und StichworteDokumente koumlnnen mit Stichworten versehenund Kategorien zugeordnet werden Die Konzep-te hinter beiden Vorgaumlngen erscheinen zunaumlchst

aumlhnlich sie unterschei-den sich aber wesent-lich Kategorien sindzuvor vom Administra-tor angelegt wordenund nur aus diesemPool kann eine Aus-wahl beim Eintragender Kategorie einesDokuments getroffenwerden Stichwortesind letztlich beliebigerFreitext der mit demDokument abgespei-chert wird

Beim Anlegen einesDokuments wird manfeststellen dass auchStichworte aus zuvordefinierten Listen uumlber-nommen werden koumln-nen Diese Listen koumln-nen entweder bdquogloballdquooder bdquopersoumlnlichldquo sein

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 26

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

DOKUMENTATION

Die globalen Listen sind vom Administrator an-gelegt worden Die persoumlnlichen Listen kann je-der Benutzer selbst anlegen Die Funktion dafuumlrfindet man auf der eigenen Profil-Seite Es koumln-nen beliebig viele Listen angelegt werden die al-le einen Namen haben und somit die Gruppie-rung von Stichwoumlrtern ermoumlglichen Es ist ratsamStichwortlisten zu verwenden weil sie eine Ver-einheitlichung der Stichwoumlrter ermoumlglichen undletztlich die Suche nach Dokumenten effizientermachen

Vergessen sollte man dabei aber nicht dass dieListen letztlich nur eine Eingabehilfe sind und inder Datenbank eine durch Leerzeichen separier-te Liste von Woumlrtern erscheint die man durch-aus auch uumlber die Tastatur haumltte eingeben koumln-nen Kategorien und Stichworte werden zur Zeitvorwiegend bei der Suche als Such- oder Filter-kriterium genutzt

DatenbanksucheDie Standardsuche in LetoDMS beschraumlnkt sichauf die Suche uumlber die Daten in der LetoDMS-Datenbank Die Einstellmoumlglichkeiten sind be-traumlchtlich In vielen Faumlllen reicht aber bereits dieSuche uumlber das Eingabefeld rechts oben im Kopfjeder Seite Eine Suche die daruumlber angestoszligenwird sucht im Titel Kommentar und den Stich-worten ohne weitere Einschraumlnkung der Ergeb-nisliste Ein Klick auf den Suchknopf ohne Such-text fuumlhrt zum regulaumlren Suchformular genausowie der Link bdquoSearchldquo in der Kopfzeile Mit der Ver-sion 330 wird die Datenbanksuche nicht nur Do-kumente sondern auch Ordner finden

Grenzen von LetoDMSLetoDMS ist bereits sehr maumlchtig stoumlszligt aberdennoch an Grenzen und birgt ein paar Eigenhei-ten die man bei der Entscheidung fuumlr LetoDMSberuumlcksichtigen sollte

Dokumente auf dem ApplikationsserverHistorisch bedingt legt LetoDMS die Dokumen-te im Dateisystem ab Das erfordert dass Le-toDMS auf dem gleichen Server installiert istOder anders herum ausgedruumlckt Die Dokumen-te liegen auf dem Applikationsserver Verwendetman einen dedizierten Datenbankserver dannverteilen sich die Daten des DMS bereits auf zweiServern was beispielsweise das Backup verkom-pliziert oder Sicherheitskonzepte untergraumlbt ZurZeit laumlsst sich dies nur beheben in dem die Do-kumente auf einem dedizierten Server abgelegtwerden und als Netzlaufwerk im Applikationsser-ver eingebunden werden

Anzahl der DokumenteDie Zahl der Dokumente ist bedingt durch die Ab-lage im Dateisystem und dessen Eigenschaftenbegrenzt ext3 kann beispielsweise nur 31998Unterverzeichnisse ablegen Da LetoDMS jedesDokument in einen Ordner legt ist dies auchgleichzeitig die maximale Anzahl der Dokumen-te Abhilfe schafft die Verteilung der Dokumenteauf zwei Ordnerebenen in Version 330

Keine Integration mit OCR-Software ScannerEine Integration mit externen Software zur Au-tomatisierung (beispielsweise Dokumentenerfas-sungsprozessen) ist nicht vorgesehen Sehr wohl

bestehen hier Moumlglichkeiten eine solche Inte-gration zu realisieren Skripte auf Basis vonLetoDMS_Core die Dokumente automatisch im-portieren sind leicht programmiert

Mehr zu LetoDMSWer mehr uumlber LetoDMS erfahren moumlchte sollteeinen Blick auf die Homepage [1] werfen Die Sei-ten sind nicht immer auf dem aktuellsten Standim Forum findet man in der Regel jedoch schnelleine Antwort auf Fragen und Probleme Kom-merzieller Support ist uumlber die deutschsprachigeWebsite [7] verfuumlgbar

LINKS[1] httpwwwletodmscom[2] httpwwwpro-linuxdeartikel21555dokumen

tenmanagement-mit-letodmshtml[3] httpsourceforgenetprojectsmydms[4] httpsdewikipediaorgwikiPHP_Extension_

and_Application_Repository[5] httpadodbsourceforgenet[6] httppearphpnetLog[7] httpwwwletodmsde

Autoreninformation

Uwe Steinmann ist seit 1996 Ent-wickler Freier Software und seitVersion 300 hauptverantwortlich fuumlrLetoDMS

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 27

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

SPIELE

Fish Fillets ndash Next Generation von Hans-Joachim Baader

W er einmal wieder Bedarf fuumlr ein kniff-liges Puzzle hat sollte sich das freieSpiel Fish Fillets ndash Next Generati-

on [1] ansehen Es ist in den Repositorys ver-schiedener Distributionen zu finden

Redaktioneller Hinweis Der Artikel bdquoFish Filletsndash Next Generationldquo erschien erstmals bei Pro-Linux [2]

VorwortFish Fillets ndash Next Generation ist ein reines Kno-belspiel Es kennt keine Zeitbegrenzungen mankann die Loumlsung so oft versuchen wie man willEs ist zugleich Entspannung und eine Heraus-forderung fuumlr das logische Denkvermoumlgen KeinStress durch staumlndiges Geballer oder den Kampfgegen die Uhr

Das Spiel besteht aus 70 plus mindestens 10zusaumltzlichen Ebenen die alle dasselbe Ziel ha-ben Es ist jeweils ein Ausgang vorhanden durchden die beiden Protagonisten ndash ein groszliger undein kleiner Fisch ndash unbeschadet nach drauszligenschwimmen muumlssen Das houmlrt sich einfach anist aber mit ein paar Huumlrden verbunden Denn esliegen immer einige Gegenstaumlnde im Weg diedurch kluges Schieben oder Anheben beiseitegeraumlumt werden muumlssen Dabei muss man so-wohl die Groumlszlige und Staumlrke der Fische als auchdie Tuumlcken der Schwerkraft bedenken

Komplett neu ist das Spielkonzept sicher nichtman findet darin Elemente des Klassikers Soko-

ban ebenso wie Digger und verwandte SpieleDass hier zwei Figuren zusammenarbeiten muumls-sen um das Problem zu loumlsen war fuumlr mich neuaber auch dafuumlr gibt es sicher Vorbilder Die Um-setzung und grafische Gestaltung ist dagegeneinzigartig

Tuumlrme von Hanoi In Fish Fillets ist nichtsunmoumlglich

HistorieFish Fillets war ein Spiel der Firma Altar Interac-tive das 1998 veroumlffentlicht und 2004 unter dieGPL gestellt wurde Da die Firma sowohl denQuellcode als auch die Daten freigab konnte un-mittelbar darauf eine Linux-Portierung begonnenwerden Diese Portierung lief allerdings von An-fang an unter dem Namen Fish Fillets ndash NextGeneration (Fish Fillets NG) die Homepage ent-haumllt noch die vollstaumlndige Zeitleiste der Veroumlffent-lichungen Schon nach wenigen Versionen wardas Spiel spielbar und noch im Laufe des Jah-res wurde Version 061 erreicht womit das Spielvollstaumlndig war Das ist beachtlich da es zugleichvon Delphi auf C++ portiert wurde

Danach wurden noch zusaumltzliche Levels Erwei-terungen und Uumlbersetzungen eingefuumlhrt sodassdas Spiel heute uumlber mehr Levels zahlreicheUumlbersetzungen und weitgehende Plattformunab-haumlngigkeit verfuumlgt Version 10 erschien kurz vorWeihnachten 2010 aktuell ist Version 101

Die Firma Altar Interactive veroumlffentlichte nochein Nachfolgespiel Fillets 2 [3] das noch kom-plexer ist aber leider nur fuumlr Windows erschien

Hier muss man bdquonur die Glaumlser geschicktverteilen ldquo

InstallationFalls man das Spiel nicht ndash oder nicht in der ak-tuellsten Version ndash im Repository seiner Distribu-tion findet kann man es anhand des Binaumlrpaketsvon der Projektseite installieren oder selbst ausdem Quellcode kompilieren Sowohl das Binaumlr-als auch das Quellcodepaket findet man auf derDownloadseite [4] Zu beiden Paketen darf man

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 28

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

SPIELE

nicht vergessen das etwa 140 MB groszlige Daten-paket herunterzuladen

Beide Pakete entpackt man mit den uumlblichenWerkzeugen oder auf der Kommandozeile mittar xzf ltPaketnamegt Beim Binaumlrpaket han-delt es sich um eine 32-Bit-Version Diese kannman auch auf 64-Bit-Systemen zum Laufen be-kommen es muss nur die 32-Bit-SDL-Bibliothekinstalliert sein Die sonstigen benoumltigten Biblio-theken liefert das Programm mit Zum einfachenStart gibt es das Skript filletssh das manwie folgt aufruft

$ filletssh systemdir=ltDatapathgt

Das Kompilieren aus dem Quellcode ist ge-nauso einfach Man kann dabei auch ei-ne 64-Bit-Version erzeugen Zunaumlchst entpacktman das Quellcode-Archiv Dann wechselt manins Verzeichnis fillets-ng-101 und ruftconfigure und falls kein Fehler gemeldetwird make auf

$ cd fillets-ng-101$ configure$ make

Sollte es zu einer Fehlermeldung kommen istmeist ein fehlendes Paket die Ursache FehltzB das Entwicklungspaket fuumlr SDL_mixer soist unter Debian libsdl-mixer12-dev nach-zuinstallieren das bei anderen Distributioneneinen aumlhnlichen Namen hat Ebenso kannlibsdl-ttf20-dev fehlen

Der erste ndash und einfachste ndash Level

Nach der erfolgreichen Kompilierung muss manmake install als Root aufrufen

make install

Dann muss man noch das Daten-Archiv ent-packen und zwar in usrlocalsharegamesDas neue Verzeichnis muss man noch mittels

mv fillets-ng-data -100 fillets-ng

umbenennen Wer die Spieldaten woan-ders installiert kann filletssh mit der

Option systemdir=ltPfad zu denDatengt aufrufen

SpielDas Ziel des Spiels ist einfach zu be-schreiben da es in jedem Level das-selbe ist Beide Fisch-Agenten muumls-sen lebend durch den Ausgang ge-schleust werden wie schon in der Ein-leitung beschrieben Es gibt allerdingsAusnahmen Das letzte Level jederSerie hat das Ziel einen Gegenstandhinauszuschaffen Jeder Level ist un-abhaumlngig von den anderen allerdingskann man manche Level erst auswaumlh-len wenn man andere davor geloumlsthat Diese Level bilden eine Serie undinsgesamt gibt es mehrere Serien

Die Level sind statisch sehen also injedem Spiel gleich aus Manche Le-vel sind als Folge von Raumlumen an-gelegt andere bestehen nur aus ei-

nem Raum aber die Beseitigung der Hindernis-se kann dennoch sehr kompliziert sein

Das Spiel beginnt mit einem kurzen Intro Imdarauf folgenden ersten Level bdquoWie alles anfingldquosieht man die beiden Fische am Unterwasser-Kuumlchentisch In diesem noch sehr einfachenSzenario ist es ziemlich trivial den Weg zumAusgang freizumachen Dazu geben die Fischeauch noch ein paar Hinweise Bereits in diesemLevel faumlllt die liebevoll gezeichnete Grafik aufDazu kommt der sich staumlndig etwas bewegende

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 29

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

SPIELE

Level 2

Hintergrund der die Stroumlmung des Wassers an-deutet Auch die Pflanzen bewegen sich in derStroumlmung Sporadische Blubbergeraumlusche be-tonen die Unterwasseratmosphaumlre noch weiterEinige Level verfuumlgen uumlber zusaumltzliche Audio-Effekte Weitere Abwechslung kommt dadurchins Spiel dass es in nahezu jedem Level mindes-tens ein animiertes Objekt gibt und das mussnicht immer ein Lebewesen sein

Es folgt bdquoDie Nachricht in der Aktentascheldquo Die-ser spezielle Level enthaumllt eine Aktentasche die

sich oumlffnet und ein Vi-deo abspielt das dieAuftraumlge grob umreiszligtund somit zur Stim-mung des Spiels bei-traumlgt Im weiteren Ver-lauf uumlbernimmt dasSpiel selbst die Steue-rung und erklaumlrt an-hand einfacher Bei-spiele was die Fischekoumlnnen was an Bewe-gungen erlaubt ist undwas zum Tod der Fi-sche fuumlhrt Das neu er-worbene Wissen kannman im dritten LevelbdquoDie Probe im Kellerldquotesten in dem es nochein paar angedeute-te Hinweise gibt Sol-che Hinweise gibt es inspaumlteren Leveln nicht

mehr oder sie sind so versteckt dass sie wenighelfen

Schon im dritten Level wird man (zu seinem Leid-wesen erst nahe am Ausgang) feststellen dassdie Platzierung der Gegenstaumlnde schon am An-fang Auswirkungen auf spaumltere Zuumlge haben kannMan muss also sehr weit vorausdenken In fruuml-heren Versionen konnte man nach einem Fehlerden Level nur aufgeben und mit dem neu erwor-benen Wissen neu beginnen Inzwischen gibt esauch eine Taste zum Ruumlckgaumlngigmachen von Zuuml-

gen Diese Abhaumlngigkeit von fruumlheren Entschei-dungen traumlgt natuumlrlich zum Schwierigkeitsgradbei der schnell ansteigt Ich muss zugeben dassich die wenigsten Level auf Anhieb loumlsen konn-te Meist musste ich die Loumlsungsbeschreibung [5]zu Hilfe nehmen um den entscheidenden Zug zufinden Ohne diese haumltte ich laumlngst frustriert dasHandtuch geworfen

Level 3

Das Spiel ist mit Musik untermalt die allerdingsschnell eintoumlnig wird Man kann ihre Lautstaumlrkeaber auf 0 setzen Die Bemerkungen welche dieFische ndash oder andere Wesen ndash von sich gebenstehen in etlichen Sprachen auch Deutsch zurVerfuumlgung Diese kann in den Optionen einge-stellt werden Auch eine Sprachausgabe ist moumlg-lich allerdings auf Tschechisch und Niederlaumln-disch beschraumlnkt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 30

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

SPIELE

Fish Fillets Clone

Der KlonWer von all diesen Leveln immer noch nicht ge-nug hat kann zusaumltzlich noch das Spiel Fish Fil-lets Clone [6] probieren Das Spiel von MiroslavOlšaacutek nimmt zwar Anleihen bei Fish Fillets istaber dennoch eigenstaumlndig Die Grafik kann lei-der nicht einmal ansatzweise mit dem Originalmithalten aber dadurch dass die Regeln anderesind stellt das Spiel wiederum eine ganz eigeneHerausforderung dar ndash und die ist nicht kleinerals beim Original

Fish Fillets Clone duumlrfte in den wenigsten Dis-tributionen zu finden sein daher muss man es

aus dem Quellcode kompilierenDen Quellcode findet man aufder Homepage Nach dem Ent-packen muss man sicherstel-len dass einige benoumltigte Pake-te vorhanden sind Man brauchtdie Entwicklerpakete von Lua(50 oder 51 aber nicht 52)Cairo und Xlib Der Autor bautalso nicht auf SDL Nun solltesich das Spiel mit make erfolg-reich kompilieren lassen Star-ten kann man einfach mit

$ ff-clone -d data

Eine Installation ist nicht noumltigaber moumlglich Bisher konnte ichnur die ersten Level des Spielsloumlsen Dabei empfand ich dieReaktion auf die Tastendruumlcke

als sehr langsam und traumlge Spielbar ist Fish Fil-lets Clone trotzdem schon

FazitFish Fillets ndash Next Generation ist ein sehr schouml-nes anspruchsvolles Spiel Man kann ohne Zeit-druck und Hektik spielen und wird trotzdem geis-tig stark gefordert Fuumlr mich stellt das die idealeArt von Spielen dar Bisweilen kann es auch frus-trierend sein wenn man uumlberhaupt nicht weiterkommt Doch das gehoumlrt natuumlrlich auch dazu

Besonders hervorzuheben ist die liebevolle Gra-fik die das Spiel deutlich von den meisten frei-

en Spielen abhebt und die kommerzielle Herkunftverraumlt Nur wenige freie Projekte haben die Res-sourcen eine solche Grafik zu erstellen

Fish Fillets ndash Next Generation duumlrfte Jung und Altgleichermaszligen Spaszlig machen Nur muss man ei-ne Menge Geduld mitbringen aber wer das tuthat viele Stunden lang zu knobeln Auch fuumlr Kin-der ist das Spiel durchaus geeignet Fuumlr die ganzjungen allerdings nicht da es fuumlr diese wohl dochzu schwierig wird

LINKS[1] httpfilletssourceforgenet[2] httpwwwpro-linuxdeartikel21550fish-fillets-

next-generationhtml[3] httpwwwfish-filletscompagesnewshtml[4] httpfilletssourceforgenetdownloadphp[5] httpwwwgamefaqscompc926347-fish-fillets

faqs35393[6] httpwwwolsaknetmirekff-cloneindex_en

html

Autoreninformation

Hans-Joachim Baader (Webseite)befasst sich seit 1993 mit Linux 1994schloss er sein Informatikstudiumerfolgreich ab machte die Software-entwicklung zum Beruf und ist einerder Betreiber von Pro-Linuxde

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 31

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

COMMUNITY

DANTE-Tagung 2012 in Leipzig von Dominik Wagenfuumlhr

B ereits zum zweiten Mal habe ich an ei-ner DANTE-Tagung teilgenommen DieErste war im Herbst 2009 in Esslingen

vor der eigenen Haustuumlr [1] Die diesjaumlhrigeFruumlhjahrstagung fand zwar etwas abgelegenin Leipzig statt da ich die Stadt aber schonzweimal besucht hatte wollte ich den drittenBesuch nicht auslassen Und es hat sich ge-lohnt

Der Verein DANTE e V (Deutschsprachige An-wendervereinigung TEX e V [2]) haumllt jedes Jahreine Fruumlhlings- und eine Herbsttagung ab aufder sich (theoretisch) die ca 2000 Vereinsmitglie-der und auch Nicht-Mitglieder aus dem deutsch-sprachigen Raum treffen um die Neuigkeiten zuTEX und all seinen bdquoDerivatenldquo zu besprechen

Im Gegensatz zur Ubucon [3] findet die DANTE-Tagung aber meist unter der Woche statt wasnatuumlrlich die Teilnahme fuumlr bdquonormaleldquo Arbeitneh-mer etwas erschwert Dennoch waren die Vortrauml-ge von Dienstag bis Mittwoch mit ca 35 Leutennoch gut besucht ndash wobei dies natuumlrlich kein Ver-gleich zu den 250 Leuten einer Ubucon ist Umbei den Vergleichen zu bleiben gestaltete sichdas Programm der Tagung auch etwas einfacherEs gab nur einen Slot der mit Vortraumlgen gefuumllltwurde so gut es ging [4] Es ergab sich dabei ei-ne starke Mischung zwischen Einsteigervortragund extrem detaillierten Vortrag eines bdquoRandge-bietes im Randgebietldquo (um einen Teilnehmer zuzitieren)

Axel Struumlbing und die Hinterkoumlpfe aufmerksamer Zuhoumlrer

Dienstag 6 Maumlrz 2012Am Dienstag gab es noch keine Vortraumlge Statt-dessen gab es im Alfredo ein erstes kleines Ken-nenlerntreffen Hier konnte man auch die Gesich-ter sehen die sich hinter den Namen verbergendie man zum Beispiel aus der TEXnischen Komouml-die [5] kennt Die Alteingesessenen haben dieNeulinge auch sehr gut und voumlllig entspannt auf-genommen

Mittwoch 7 Maumlrz 2012Am Mittwoch morgen nach der Anmeldung be-gann der erste Vortragstag gegen 9 Uhr Derdamals aktuelle Vereinsvorsitzende Volker RW

Schaa begruumlszligte die Teil-nehmer im Lipsiusbau derHTWK Leipzig [6] Danachuumlbergab er das Wort an Ger-rit Imsieke von der Firmale-tex [7] welche das Rund-herum organisierte und zumBeispiel mit Kaffee WasserObst und Keksen fuumlr dasleibliche Wohl waumlhrend derVeranstaltung sorgte Auchdie Abendtreffen wurden vonle-tex organisiert und mitfinan-ziert

Der erste Vortrag war von Guumln-ther Partosch vom Hochschul-rechenzentrum Gieszligen [8] ndashwas insofern witzig ist weil ich

dort mehrere Jahre studiert habe Das ThemabdquoLATEX ist nicht barrierefreirdquo sollte zeigen wiesodie mit LATEX erstellen PDF-Dateien nicht fuumlr Blin-de oder sehbehinderte Menschen geeignet sindGanz klar stellte Guumlnther Partosch heraus dassman ein voumlllig barrierefreies PDF nicht erreichenkann Dennoch sollte man zumindest Barriere-armut anstreben Dazu zaumlhlen unter anderemein getaggtes PDF die Wahrnehmbarkeit (z BKontrast) und auch die Verstaumlndlichkeit des Tex-tes Dabei sollte aber nie vergessen werdendass Blinde und Sehbehinderte nicht nur PDF-Konsumenten sind sondern auch -Produzentensein koumlnnen Fuumlr sie ist es immens wichtig dass

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 32

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

COMMUNITY

sie das Ergebnis der LATEX-Ausgabe auch verifi-zieren koumlnnen Der Weg dahin scheint aber nochlaumlnger zu sein

Direkt im Anschluss ging Axel Struumlbing von le-texdetaillierter auf die Probleme mit einem barrie-rearmen PDF ein Vor allem die Anforderun-gen Unicode-Schriften PDF-Tags eingebettetesFarbprofil Lesezeichen und Markierung der auto-matischen Trennung wurden dabei genannt DieLoumlsung nutzte im Endeffekt dann LATEX dvips undAdobe Distiller um ein vernuumlnftiges Ergebnis zuerzielen ndash fuumlr Linux also weniger tauglich DassAxel Struumlbing auch im TEX-Quellcode Anpassun-gen vornehmen musste macht die Sache nichteinfacher Insgesamt war der Vortrag gut aberauch sehr spezifisch

Da bot es sich an dass Thomas Ferber mit sei-nem Vortrag bdquohyperref fuumlr Dokumenteigenschaf-tenldquo eher ein Einsteigerthema bot Dummerweisefand fuumlr die wenigen LATEX-Einsteiger die zur Ta-gung gekommen waren parallel ein kleiner Ein-stiegskurs von Uwe Ziegenhagen statt sodasssie den Vortrag von Thomas Ferber gar nichthoumlren konnten Es gab aber vielleicht auch fuumlrden einen oder anderen alten Hasen noch ei-ne neue Erkenntnis was man mit dem Pakethyperref [9] machen kann

Der naumlchste Vortrag ging auch eher in die Rich-tung lockere LATEX-Unterhaltung Herbert Voszligerfolgreicher Autor zahlreicher LATEX-Buumlcher [10]zeigte wie er mit Hilfe von Animationen im PDFseine Schuumller und Studenten etwas besser in

komplexe (meist mathematische oder physikali-sche) Ablaumlufe einfuumlhren kann Die Darstellungals Animation hilft dabei vor allem raumlumliche Pro-bleme besser zu verstehen Schade ist dass dieAnimationen (meist uumlber das Paket animate [11])

Herbert Voszlig erklaumlrt wie man Animationen mit LATEX darstellt

nur auf dem Adobe Reader funktionieren ndash da-fuumlr immerhin auch unter Linux Zu komplex soll-ten die Berechnungen dabei aber nicht sein dasonst die Geschwindigkeit stark leidet

Nach der Mittagspause ging es mit MartinSchroumlder weiter der vonden neuesten Entwicklun-gen im TEX-Umfeld berich-tete Im Vortrag war esschoumln zu houmlren welcheTEX-Engines es alles gibtvor allem die (relativ) neue-ren Vertreter wie XeTEXConTEXt und LuaTEX sindwichtig weil sie beste-hende LATEX-Probleme mitUnicode-Eingaben oderOpen-Type-Schriften behe-ben Neben den Engineswurden aber auch einzel-ne Felder wie Grafikdar-stellung (u a mit PSTricksAsymptote TikZ) Literatur-verwaltung (Biber und Bi-blatex) oder Praumlsentationen(beamer und powerdot) vor-gestellt Eingestreut wurdenvon den Teilnehmern immerwieder zahlreiche Anekdo-ten aus den letzten 34 Jah-ren TEX woran man merk-te wer zu den Urgesteinender deutschsprachigen TEX-Szene gehoumlrt

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 33

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

COMMUNITY

Martin Sievers erklaumlrt das Paket fancyref

Jean-Michel Hufflen stellte im nachfolgenden Vor-trag seine selbst entwickelte LiteraturverwaltungMlBibTEX vor [12] Da Jean-Michel Huffles ausFrankreich stammt war es nicht immer leichtdem akzentreichen Vortrag zu folgen Auch wa-ren die Folien etwas sehr bunt (und definitiv nichtbarrierearm) sodass sich anfaumlnglich nicht ganzerschloss was die Vorteile von MlBibTEX gegen-uumlber Biblatex sein sollten Zahlreiche Beispielemachten es am Ende aber klarer Leider triebder Referent die Konsolenbeispiele etwas zuweit was ab einem gewissen Zeitpunkt meinenHorizont einfach uumlberstieg wodurch ich nichtmehr mitkam

Volker RW Schaa stellt die Tagungspunkte vor

Wie amVormittag

lieszlig der nachfolgende Vortrag zum Thema bdquoRefe-renzen mit LATEXldquo von Martin Sievers das Niveauwieder auf ein normales Maszlig sinken sodassauch ich wieder folgen konnte

Sicherlich war nicht fuumlr jeden die Vorstellungder Pakete fancyref [13] varioref [14] undcleveref [15] voumlllig neu Dennoch wurde dasThema gut aufbereitet und an Beispielen schoumlngezeigt wie man das eigene PDF mit Verweisenverbessern kann ohne dabei in eine Art Verweis-Monotonie zu verfallen

Den Abschluss des ersten Vortragtages bildetenoch einmal Herbert Voszlig der vorstellte wie er an

der Technischen Universitaumlt Berlin [16] seine Stu-denten in das Thema LATEX einfuumlhrt Dort ist LATEXseit einigen Jahren Teil des Moduls bdquoProgrammie-ren und Praumlsentierenldquo wobei die meisten Studen-ten in der Regel keinerlei LATEX-Erfahrung habenwas die Einarbeitung natuumlrlich aufwendig gestal-tet und das Thema entsprechend verstaumlndlichaufbereitet werden muss

Donnerstag 8 Maumlrz 2012Der Donnerstag startete mit der 46 Mitglieder-versammlung des DANTE e V Die circa 30 an-gereisten Vereinsmitglieder stimmten uumlber zahl-reiche Dinge ab So wurde auch ein neuer Vor-stand gewaumlhlt sodass der 1 Vorsitzende desDANTE e V seit dem Tag Martin Sievers ist wel-

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 34

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

COMMUNITY

cher unter anderem auch die Referentenbetreu-ung und Programmorganisation zur Tagung uumlber-nommen hatte

Aus den (laut Aussage eines Teilnehmers) ge-heimen vereinsinternen Punkten darf ich somitnichts berichten ein (hoffentlich nicht geheimer)Punkt war aber ob die TEXnische Komoumldie [17]sofort nach Erscheinen der Allgemeinheit zurVerfuumlgung gestellt werden sollte Die Diskussi-on hierzu erschreckte mich etwas und beina-he waumlre ich aus dem Verein ausgetreten dadiese Exklusivitaumlt welche einige Mitglieder mitder TEXnischen Komoumldie fuumlr sich beanspruchenkomplett den Werten von freiesMagazin [18](und mir selbst natuumlrlich) widerspricht Wissensollte frei sein sodass jeder ohne Beschraumlnkungdarauf zugreifen davon lernen und das Wissenausbauen kann Leider sieht man das bei DANTEnicht so was ich sehr schade finde Von einer frei-en Verfuumlgbarkeit ist man also noch weit entferntndash von freien Lizenzen kann erst recht keine Redesein

Thomas Ferber und mir ist dann leider der etwasundankbare erste Nachmittagsslot zugeteilt wor-den Wir berichteten uumlber die Probleme die esgibt wenn man aus dem LATEX-Code ein vernuumlnf-tiges EPUB machen will Als praktisches Beispieldiente freiesMagazin welches seit Januar 2012ein EPUB offiziell mit anbietet [19] Es war gutdie Erfahrungen mit einigen der wach gebliebe-nen Zuhoumlrern zu teilen Der Vortrag steht natuumlr-lich auch online [20] zur Verfuumlgung (und auch un-ter Creative-Commons-Lizenz siehe oben)

Nach uns stellte Patrick Gundlach das Projektspeedata vor [21] an dem er arbeitet Die Ideeist es aus einer Datenbank stammende Datenautomatisiert auf der Seite so auszurichten dassvorgegebene Designregeln eingehalten werdenAls Grundformat setzt er dabei auf XML aus wel-chem mit Hilfe von LuaTEX ein PDF erstellt wirdTEX bietet dabei nur die Grundfunktionalitaumlt derAnzeige alle Berechnungen werden mithilfe vonLua-Skripten vorgenommen

Ein weiterer Vortrag zu LuaTEX betraf die OpenType Math Fonts die von Herbert Voszlig vorgestelltwurden Die Schrift fuumlr Reintext und Mathetextsind in LATEX zwei grundverschiedene Dinge Danicht jeder Font ein komplettes Paket an Schrif-ten mitbringt muss man sich fuumlr Mathe oft mit ei-ner aumlhnlich aussehenden Schrift begnuumlgen Her-bert Voszlig stellte verschiedene Moumlglichkeiten zurEinbindung solcher Mathe-Schriften vor

Den Abschluss des Tages bildete Christof Mei-gen ebenfalls mit einem Vortrag zu LuaTEX Erzeigte auf gute und lockerere Art und Weise wieman Lua und TEX zusammen sinnvoll einsetzenkann Als Beispiel wurde ein Formular vorgestelltwelches die Daten in einer GUI abfragt und dannmithilfe von TEX ein ausgefuumllltes Formular alsPDF daraus macht

Freitag 9 Maumlrz 2012Am naumlchsten Morgen zeigte Patrick Gundlachweitere Faumlhigkeiten von LuaTEX In seinem An-wendungsbeispiel wollte er Glue (Abstand zwi-schen zwei Worten) und Kerning [22] (verrin-

gerter Abstand zwischen Buchstaben) von LATEXsichtbar im PDF darstellen Die Loumlsung dahinterwar recht einfach Mit Hilfe von LuaTEX hangelteer sich durch alle Elemente des PDFs und konn-te leicht bestimmen wo ein gesuchter Typ stehtVor diesem fuumlgte er eine farbige Box in der jewei-ligen Groumlszlige ein

Stefan Kottwitz fuumlhrte dann in die bdquoTEX Onli-ne Communitiesldquo ein Im Vortrag wurden klas-sische Kommunikationsmedien wie Mailinglistenund UsenetNewsgroups sowie deren Vor- undNachteile angesprochen ebenso wie neuere Me-dien wie Blogs Planets und Webforen Insge-samt erhielt man so einen guten Uumlberblick woman sich wie uumlber TEX informieren kann Ausfuumlhr-licher wurde danach noch TEX Stack Exchangevorgestellt [23] Diese Frage-und-Antwort-Seiteist sehr beliebt und wird allein von den Nutzerngestaltet und moderiert Es ist damit ein neuesMedium was wesentlich mehr Nutzer ansprichtals die klassischen Kommunikationsmedien

Zum Vortrag sei angemerkt dass viele der Aus-sagen von Stefan Kottwitz fuumlr die meisten Online-Communitys gelten Ich selbst halte Newsgroupsund Mailinglisten nicht mehr fuumlr den aktuellenStand der Kommunikationstechnik und vor allemfern von jeglicher Einsteigerfreundlichkeit [24]Umso verstaumlndlicher ist es fuumlr mich wenn aufsolche Listen nur alteingesessene Nutzer schrei-ben und niemand neues mehr in ein Projekt fin-det (dasselbe Problem hat auch die Ubucon)

Im nachfolgenden Beitrag zeigte Uwe Ziegen-hagen zwei kleine Anwendungsbeispiele von

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 35

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

COMMUNITY

Martin Sievers bedankt sich mit Geschenken bei Geschaumlftsfuumlhrer Gerrit Imsieke und Mitarbeiter Martin Kraetke der Firmale-tex fuumlr deren Unterstuumltzung

LATEX Beim ersten Projekt wurden die von derDeutschen Post als PDF gelieferten elektroni-schen Briefmarken automatisiert inkl Absenderund Adresse auf einen Briefumschlag gedrucktDas zweite Projekt sollte eine Bildergalerie imPDF zeigen Das Paket ocgtools [25] hilft da-bei nur bedingt zumal es nur im Adobe Readerfunktioniert Der Export von Lightform direkt in

LATEX funktionierte aufgrund von Klammerpro-blemen nicht sodass im Endeffekt eine CSV-Datei exportiert wurde die dann uumlber das Paketdatatool [26] in LATEX eingebunden wird und fuumlreine Thumbnail-Ansicht inkl Verlinkung sorgt

Vor dem Mittag stellte der Designer der LinuxLibertine Fonts [27] Philipp Poll den aktuellen

Stand des Projektes undvor allem die Fortschrit-te des Libertine MonotypeFonts vor Der Vortrag warinteressant aber auch wie-der sehr speziell Fuumlr nor-male Anwender ist die ver-wendete Schrift fast egalund auch fuumlr mich ist esnicht ganz so wichtig obLigaturen oder Kerning zu100 stimmig sind AmEnde stellte Philipp Pollnoch Fontforge vor undwie man damit Zeichensaumlt-ze editieren kann

Nach dem Mittagessenstellte Martin Kraetke dasUnternehmen le-tex [7]vor welches wie obengeschrieben viel bei derDANTE-Tagung organisier-te und finanzierte MartinKraetke selbst fungiertedabei auch als Ansprech-partner zur HTWK welche

die Raumlumlichkeiten fuumlr die Veranstaltung stellte

Nach den Abschlussworten von Martin Sieversloumlste sich die Versammlung auf Ein Teil gingdann noch ins Museum fuumlr Druckkunst in Leip-zig [28] und stattete danach der Firma le-texeinen Besuch ab Am Samstag stand auch nochein Stadtrundgang auf dem Plan

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 36

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

COMMUNITY

AbschlussbemerkungenDie DANTE-Tagung in Leipzig hat mir sehr vielSpaszlig gemacht Man konnte viele neue Leutekennenlernen und hatte vor allem Abends Spaszligbeim netten Zusammensitzen Dabei wurde nichteinmal nur uumlber TEX gesprochen sondern jedesThema fand seinen Platz

Fuumlr die naumlchste DANTE-Tagung habe ich aberbereits einen extra Einsteigerslot vorgeschlagensodass sich Einsteiger- und Profithemen ge-trennt behandeln lassen So werden beide Ziel-gruppen entsprechend angesprochen Der Ein-steigerslot muss dabei in meinen Augen nicht ein-mal voll ausgelastet sein schlieszliglich richtet sichdie DANTE-Tagung eher an die TEX-Profis den-noch sollte man auch an die Neulinge denken

Zu diesem Thema kann man gespannt sein obDANTE was den Altersdurchschnitt angeht sichin Zukunft verbessern kann Es gibt zwar laut of-fizieller Aussage keinen Mitgliederschwund aberes helfen immer weniger Menschen bei Projek-ten wie der TEXnischen Komoumldie oder den Tagun-gen mit In meinen Augen liegt das vor allem ander Geschlossenheit des Projekts was Neulin-ge nicht gerade zur Mitarbeit animiert Die Kom-munikationsprobleme (siehe oben) helfen eben-so wenig Natuumlrlich muss das aber der Vereinbzw die Vereinsfuumlhrung selbst aumlndern oder zu-mindest den Anstoszlig dazu geben

Ebenso koumlnnte man uumlberlegen wieso der Frau-enanteil auf der Tagung bei fast 0 liegt Gerade

einmal eine Frau hat sich die Vortraumlge angehoumlrtEinige andere waren noch in den Einsteigertutori-en zu finden Dabei ist LATEX eine gute Anlaufstel-le was gutes Design Schriftbild und Layout an-geht und somit auch fuumlr angehende Designerin-nen interessant (Wobei das bdquoProblemldquo der Frau-enbeteiligung ja immer noch in den meisten tech-nischen Disziplinen ein Problem ist Linux gehtes da nicht anders)

Die Folien zu den einzelnen Vortraumlgen derDANTE-Tagung koumlnnen auf der Vortragsseiteheruntergeladen werden soweit der Autor diesezur Verfuumlgung gestellt hat [29]

LINKS[1] httpwwwdeesasterorgblogindexphp

archives1011[2] httpwwwdantede[3] httpubuconde[4] httpwwwdantedeeventsdante2012

Programmhtml[5] httpwwwdantedeDTKhtml[6] httpwwwhtwk-leipzigdedehochschuleueber-

die-htwk-leipziggebaeudeuebersichtlipsius-bau[7] httpwwwle-texdede[8] httpwwwuni-giessendecmsfbzsvchrz[9] httpctanorgpkghyperref

[10] httpwwwdantedeindexLiteraturhtml[11] httpctanorgpkganimate[12] httpriver-valleytvmlbibtex-architecture[13] httpctanorgpkgfancyref[14] httpctanorgpkgvarioref

[15] httpctanorgpkgcleveref[16] httpwwwtu-berlinde[17] httpwwwdantedeDTKhtml[18] httpwwwfreiesmagazinde[19] httpwwwfreiesmagazinde20120108-welche-

epub-version-bevorzugen-sie[20] httpwwwdeesasterorglatex-epubphp[21] httpwwwspeedatade[22] httpssecurewikimediaorgwikipediadewikiUn

terschneidung_(Typografie)[23] httptexstackexchangecom[24] httpwwwdeesasterorgblogindexphp

archives1699[25] httpctanorgpkgocgtools[26] httpctanorgpkgdatatool[27] httpwwwlinuxlibertineorgindexphp[28] httpwwwdruckkunst-museumde[29] httpwwwdantedeeventsdante2012

ProgrammVortraegehtml

Autoreninformation

Dominik Wagenfuumlhr (Webseite) istChefredakteur bei freiesMagazin undkuumlmmert sich unter anderem auchdarum dass das Magazin vernuumlnftigmit LATEX gesetzt werden kann

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 37

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

REZENSION

Rezension jQuery Novice to Ninja von Jochen Schnelle

S eit einiger Zeit gehoumlrt jQuery [1] zuden beliebtesten und meist genutztenJavaScript-Bibliotheken Das englisch-

sprachige Buch bdquojQuery Novice to Ninjaldquo willdabei den interessierten Leser auf dem Wegvom Einsteig bis hin zu fortgeschrittenemund Expertenwissen begleiten bzw diesenweisen

Was in Anbetracht des Funktionsumfangs vonjQuery allein schon ein stattliches Ziel ist wo-bei noch hinzukommt dass das Buch bdquonurldquorund 400 Seiten umfasst Als Voraussetzungnennen die beiden Autoren Earle Casteldineund Craig Sharkie beides erfahrene Web- undJavaScript-Entwickler lediglich fundierte Kennt-nisse in HTML und CSS sowie ein wenig Grund-wissen im Bereich JavaScript

Die StoryWas fuumlr IT-Fachliteratur ungewoumlhnlich ist DasBuch hat eine Story die sich als roter Fadenvon Anfang bis Ende durchzieht Dabei schluumlpftder Leser in die Rolle eines freien Webentwick-lers der fuumlr seinen Kunden Star Trackr nachund nach dessen Webseite mit Hilfe von jQue-ry verbessert und ausbaut Das Star Trackr-Geschaumlftsmodell ist es dass VIPs und de-ren aktuelles Tun uumlber GPS-Daten und RFID-Technologie im Web verfolgbar sind Diese Sto-ry ist natuumlrlich ein wenig abgedreht und wohl be-wusst konstruiert ndash was dem Buch aber durch-weg zutraumlglich ist Doch dazu spaumlter mehr

Der InhaltInhaltlich deckt das Buch alle gaumlngigen The-menbereiche des Einsatzes von jQuery bzwJavaScript ab Dies faumlngt bei einfachen Ein- undAusblendeffekten und dem Hinzufuumlgen und Ent-fernen von Elementen einer Webseite an Weitergeht es dann mit kleinen Animationen dynami-scher Groumlszligenanpassung von Elementen Bildernund interaktiven Bildergalerien diversen Themenrund um Menuumls Formularen Listen und TabellenWie natuumlrlich in den meisten anderen Buumlchernzum Webprogrammierung gibt es auch ein Kapi-tel zu Ajax und dem dynamischen Nachladen vonInhalten Das letzte Kapitel behandelt dann wei-ter fortgeschrittene Themen wie eigene Plug-insund Erstellung eigener Design Den Abschlussbildet dann noch eine Referenz zu einigen jQueryFunktionen

Im Buch wird dabei aber nicht nur auf jQueryan sich eingegangen sondern auch auf jQueryUI [2] zum Gestalten von Benutzeroberflaumlchensowie diversen jQuery-Plug-ins Dabei verfolgendie Autoren den sehr vernuumlnftigen Ansatz Wennes schon ein gutes Plug-in gibt warum das Radneu erfinden

Des Weiteren werden an ein paar Stellen dochnoch ein paar Absaumltze zu JavaScript eingestreutHier handelt es sich aber nicht um eine Einfuumlh-rung in JavaScript sondern vielmehr Tipps zurbdquoBest Practicesldquo z B zur Strukturierung von Da-ten Programmstrukturen und aumlhnlichem

Das Buch enthaumllt auszligerdem sehr viele Codebei-spiele wobei die meisten Listings auszugsweisegedruckt sind Die kompletten Beispiele sind uumlberdie Verlagsseite herunterladbar

Die DarstellungAuch wenn jQuery aufgrund seiner bereits er-waumlhnten Leistungsfaumlhigkeit ein weites Feld seinkann gelingt es den Autoren sehr gut und sehrverstaumlndlich die Nutzung der Bibliothek zu be-schreiben Und dies durchweg also bei den ein-fachen Beispielen zu Beginn des Buches genauso wie bei den komplexeren AnwendungsfaumlllenAlle Codebeispiele sind in sich abgeschlossenund verstaumlndlich zumal es immer eine Erklaumlrungdes Gezeigten gibt An einigen Stellen werdenim Verlauf des Buches vorangegangen Beispieleaufgegriffen und erweitert oder auch das dort ge-zeigte auf einen anderen Anwendungsfall uumlber-tragen

Dem Verstaumlndnis und Lesespaszlig kommt sehr zugute dass das Buch die weiter oben bereits er-waumlhnte Story besitzt Dadurch gelingt es den Au-toren immer wieder ein wenig Auflockerung ein-zustreuen Dies wird auch noch zusaumltzlich da-durch erreicht dass hier und da ein wenig Wort-witz und augenzwinkernder Humor zum Einsatzkommt Dabei wird aber nie vom Inhalt abge-schweift das Buch ist durchweg sachlich der Fo-kus liegt immer auf jQuery Fragen bleiben keineoffen das Buch und alle Beispiele sind in sichabgeschlossen

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 38

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

REZENSION

BuchinformationenTitel jQuery Novice to NinjaAutor Earle Casteldine Craig SharkieVerlag Sitepoint 2010Umfang 407 SeitenISBN 978-0980576856Preis 3299 C

Weiterhin faumlllt positiv auf dass die Autoren im-mer ein Auge auf das bdquowahre Lebenldquo habenSprich es wird an mehreren Stellen explizit dar-auf hingewiesen dass es Nutzer geben koumlnn-te die JavaScript deaktiviert haben und von da-her die Webseite so gestaltet werden sollte dasssie auch ohne JavaScript nutzbar ist Die Co-debeispiele im Buch beruumlcksichtigen dies natuumlr-lich ebenfalls Auszligerdem wird an verschiedenenStellen vor dem uumlbertriebenen Einsatz von jQue-ry gewarnt also zu vielen (uumlberfluumlssigen) Effek-

ten und Spielereien sowie zu langen Ladezei-ten einer Webseite durch zu viele oder zu groszligeJavaScript-Bibliotheken

Das Buch laumlsst sich durchweg fluumlssig lesen undkann sogar ndash ausreichend gute Englischkenntnis-se vorausgesetzt ndash unterhaltsam sein Was beiFachliteratur ja eher selten vorkommt Noch einWort zum Englisch Das Englisch ist durchwegverstaumlndlich zum Erfassen und Verstehen der Er-klaumlrung zum Code sollte normales Schulenglischdurchaus ausreichend sein

Das FazitKurz gesagt Das Buch ist ein absolutes High-light der IT-Literatur Umfassend verstaumlndlichviele gute Beispiele und unterhaltsam geschrie-ben Wer sich mit jQuery beschaumlftigen moumlchtedem sei dieses Buch unbedingt empfohlen

Im Fruumlhjahr soll uumlbrigens die 2 Auflage des Bucherscheinen Wobei es bei der hier besprochenen1 Auflage eigentlich nichts zu verbessern gibt

LINKS

[1] httpjquerycom[2] httpjqueryuicom

Autoreninformation

Jochen Schnelle (Webseite) hatmit Hilfe des Buchs einen schnellenund fundierten Einstieg in jQuerygefunden

Diesen Artikel kommentieren

bdquoiPhone or Droidldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom662

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 39

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

REZENSION

Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung von Michael Niedermair

D as Buch ist von Mitarbeitern derLinup Front GmbH (anerkannter LPI-Trainingspartner) fuumlr die bdquoeffektive Vor-

bereitungldquo der LPIC-1-Zertifizierung geschrie-ben worden um das bdquoJunior Level Linux Cer-tificationldquo welches zwei Pruumlfungen umfasstzu erhalten Dabei soll der Lerninhalt in didak-tisch ausgereifter Form umfassend dargebo-ten werden und mit Kontrollfragen soll der Le-ser die Moumlglichkeit zum Selbststudium habenOb diese Anspruumlche gerechtfertigt sind kannman in den naumlchsten Zeilen lesen

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

Was steht drinDas Buch ist in 19 Kapitel mit Vorwort Anhangund Index aufgeteilt und umfasst 471 Seiten AmEnde finden sich 9 Seiten Werbung zu anderenBuumlchern

Das erste Kapitel (9 Seiten) beinhaltet die Einlei-tung und beschreibt grundlegendes zur LPIC-1-Zertifizierung zur Zielgruppe und zum Aufbaudes Buches Das zweite Kapitel (7 Seiten) be-schaumlftigt sich mit der Linux-Dokumentation woman bdquonachschauenldquo kann und weitere Informatio-nen erhaumllt

Im dritten Kapitel (49 Seiten) geht es um Be-fehle die sich mit der Dateiverwaltung beschaumlfti-gen Dateien kopieren verschieben loumlschen mit

Rechten versehen im Verzeichnisbaum suchenund komprimieren stehen hier im Mittelpunkt

Das vierte Kapitel (21 Seiten) behandelt das The-ma Pipelining und geht auf Filter-Kommandoswie zum Beispiel tr join etc ein

Regulaumlre Ausdruumlcke und Editoren sind dasHauptthema des fuumlnften Kapitels (17 Seiten) mitden Programmen grep sed und vi

Im Kapitel 6 (15 Seiten) werden Prozesse dar-gestellt Das Spektrum reicht hier von reinen In-formationen uumlber Signale bis hin zu PrioritaumltenIm siebten Kapitel (21 Seiten) wird die Hardwareangesprochen wie zum Beispiel das BIOS Bus-architekturen Massenspeicher und Peripheriege-raumlte

Das achte Kapitel (30 Seiten) beschaumlftigt sich mitdem Plattenspeicher Dabei geht es um Partitio-nieren das Anlegen Ein- und Aushaumlngen desDateisystems die Integritaumltspruumlfung und die Plat-tenquota

Im neunten Kapitel (15 Seiten) werden der Sys-temstart und die Runlevels besprochen An-schlieszligend im zehnten Kapitel (33 Seiten) gehtes um Softwareinstallation und Paketmanage-ment mit Debian RPM und YUM

Das elfte Kapitel (21 Seiten) widmet sich derShell und der Erstellung einfacher Skripte Daskurze zwoumllfte Kapitel (10 Seiten) streift kurz denBereich der Datenbanken mit SQL

Das 13 Kapitel (28 Seiten) behandelt die grafi-sche Oberflaumlche mit X11 bzgl Grundlagen In-stallation Starten diverse Display-Manager undSchriftenverwaltung sowie den Fernzugriff unddie Moumlglichkeit der Nutzung fuumlr Behinderte

Im 14 Kapitel (29 Seiten) geht es um die Sys-temverwaltung das Anlegen von Benutzerkontenund Gruppen die Protokolldateien und das Hand-ling der Uhrzeit und zeitgesteuerten Vorgaumlngen

Drucken ist das Thema des 15 Kapitel mit 12Seiten Danach folgt das 16 Kapitel (13 Seiten)mit Internationalisierung und Lokalisierung

Das siebzehnte Kapitel (35 Seiten) beschaumlftigtsich mit dem Netzwerk Von Grundlagen wieTCPIP uumlber IP-Adressen Ports und Dienstegeht es zur Konfiguration und zur Fehlersuche inNetzwerken Sind die Netzgrundlagen bekanntkann man im achtzehnten Kapitel (19 Seiten) mitNetzdiensten wie zum Beispiel Mailversand oderder Secure Shell arbeiten

Damit das System auch sicher wird wird imneunzehnten Kapitel (23 Seiten) die Sicherheitangefangen beim Dateisystem uumlber Ressour-cenlimits Administrationsprivilegien Netzwerksi-cherheit bis hin zur Verschluumlsselung und Signie-rung behandelt

Im Anhang (8 Seiten) werden die LPIC-1-Pruumlfungsteile dargestellt Abgeschlossen wirdder Anhang mit dem Index der neun Seiten

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 40

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

REZENSION

BuchinformationenTitel LPI-Level 1 ndash Die LPIC-1-ZertifizierungAutor Linup Front GmbHVerlag mitp 2009Umfang 471+9 SeitenISBN 978-3-8266-5598-2Preis 3495 Euro

umfasst Er enthaumllt Stichworte Programmkon-stanten Methoden und Stichworte

Wie liest es sichDas Buch wurde fuumlr die Erlangung der LPI-LPIC-1-Zertifizierung geschrieben Die Kapitelbehandeln die einzelnen Bereiche in Theorie undsind mit vielen Beispielen durchsetzt die manleicht verstehen und nachvollziehen kann Auchnicht so erfahrene Linux-Leser koumlnnen den Inhal-ten gut folgen und der schon erfahrende Linux-Leser kann das eine oder andere bekannte Kapi-tel uumlberspringen da diese fast alle in sich abge-schlossen sind

KritikFuumlr Leser die regelmaumlszligig mit Linux arbeiten undin der Lage sind theoretische Inhalte die mit Bei-spielen untermauert sind zu verstehen ist dasBuch sehr gut geeignet Fuumlr andere Leser mussman hier deutlich differenzieren Dabei gibt es fol-gende Punkte zu beachten Die LPIC-1-Pruumlfungsetzt sich aus zwei Pruumlfungen (101 und 102) zu-sammen Das Buch geht aber bei den Bereichennicht darauf ein welche Inhalte fuumlr welche Pruuml-fung notwendig sind Dies muss sich der Leser

muumlhsam aus den Lernzielen im Anhang heraus-suchen die wenigen Zeilen in der Einleitung da-zu koumlnnen ganz leicht uumlbersehen werden Auchdas Verhaumlltnis der Gewichtung (Anzahl der Fra-gen in der Pruumlfung) zum Seitenumfang ist nichtimmer durchgaumlngig

Anscheinend haben sich hier die Vorlieben derAutoren zu den einzelnen Kapiteln gegenuumlberder Gewichtung der Lernziele durchgesetzt Dernicht so erfahrene Leser wuumlrde sich hier sicherzu jedem Kapitel Uumlbungen wuumlnschen mit denener die theoretischen Inhalte ausprobieren undeinuumlben kann Der eine oder andere Leser wuumlr-de sich sicher auch Infos zum Schema der Fra-gestellungen und eine Sammlung von exemplari-schen Fragen wuumlnschen wie dies zum Beispielin anderen LPIC-1-Buumlchern zu finden ist

Der Index ist gut aufgebaut enthaumllt nicht zu vie-le Verweise pro Eintrag und der Haupteintragist fett hervorgehoben Eine deutliche Hervorhe-bung der Bereiche (Symbole AndashZ) waumlre wuumln-schenswert damit man Eintraumlge schneller findetAuch ein paar mehr Eintraumlge wuumlrde ich auf meineWunschliste fuumlr eine evtl neue Auflage setzenda zum Beispiel der Eintrag bdquoLinkldquo fehlt Weiszligman nicht dass Links mit dem Programm ln er-stellt werden so sucht man sehr lange Was derIndexeintrag bdquoLILO 198-19208ldquo bedeutet hatsich mir leider nicht erschlossen

Das Buch ist schon aus dem Jahre 2009 aberda die Lerninhalte sich nur minimal geaumlndert

haben (siehe Wiki des LPIC-1 [1]) ist es im-mer noch passend fuumlr die aktuellen LPIC-1-Pruumlfungsinhalte Der Verlag und Autor uumlberlegengerade ob noch dieses Jahr eine neue Auflageerscheint

LINKS

[1] httpwikilpiorgwikiLPIC-1[2] httpwwwlpiceeudehomehtml[3] httpwwwlpiceeudelpi-zertifizierungsinhalte

html[4] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-101-lernzielehtml[5] httpwwwlpiceeudelpi-zertifizierungsinhalte

pruefung-102-lernzielehtml[6] httpwwwlpi-trainingeuindexphpid=25[7] httpwwwlpi-germandelaap[8] httpwwwbsinfomusindeindexphpnav=

4ampsub1=7ampsub2=0

Autoreninformation

Michael Niedermair ist Lehrer an derMuumlnchener IT-Schule und unterrichtetseit 2005 Linux Die Schule hatseither mehrere hundert Schuumllererfolgreich zur LPIC-1-Zertifizierunggefuumlhrt

Diesen Artikel kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 41

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

REZENSION

Rezension Linux Das umfassende Handbuch (5 Auflage) von Dominik Honnef

W enn von einem Buch behauptet wirddass es ein bdquoLinux Handbuchrdquo seigibt es meist zwei Moumlglichkeiten

Entweder der Autor hat ein schlechtes Ver-staumlndnis von Linux und das Buch ist relativwertlos oder der Autor hat seine Hausaufga-ben gemacht und das Buch ist umfangreichund ausfuumlhrlich

In diesem Fall haben die gleich zwei Autoren ih-re Hausaufgaben recht gut gemacht Das Buchschlaumlgt mit 1282 Seiten zu Buche und behan-delt viele verschiedene Themen die sich nichtnur mit Linux als Kernel und GNULinux als Gat-tung von Distributionen beschaumlftigen sondernmit dem kompletten Oumlkosystem

Redaktioneller Hinweis Wir danken dem Ver-lag Galileo Computing fuumlr die Bereitstellung ei-nes Rezensionsexemplares

Die ZielgruppeEs ist wichtig zu verstehen dass das Buch nichtfuumlr Leute geschrieben ist die nur ein rudimentauml-res Verstaumlndnis von Linux erlangen wollen Zwarsoll das Buch bdquofuumlr Einsteiger geeignetldquo sein je-doch wird davon ausgegangen dass der Lesersich fuumlr die Materie interessiert und nicht nur Buuml-roarbeiten erledigen will

Im Gegenteil das Buch behandelt nebst simplenThemen wie Partitionierung und Installation auchkomplexere Themen wie die Systemadministrati-on Kernel-Interna und Netzwerksicherheit

Des Weiteren sind die Autoren der Meinungdass dem Leser beigebracht werden sollte sichselbst zu helfen In dem Sinne gibt es seltenhochdetaillierte Anleitungen und auch kein Haumlnd-chenhalten dafuumlr wird dem Leser beigebrachtwie er selber weiterfuumlhrende Informationen fin-den kann etwa mittels bdquoman pagesldquo oder be-stimmter Community-Foren

Der InhaltDas Buch ist in 33 Kapitel und entsprechendviele Unterkapitel eingeteilt weswegen es wenigSinn hat alle Themen aufzuzaumlhlen Schlieszliglichgibt es hierfuumlr ohnehin das Inhaltsverzeichnis [1]

Dennoch ist es interessant eine grobe Uumlbersichtuumlber den Umfang des Buches zu erlangen Sobeginnt das Buch mit einer Einleitung zu Linuxin welcher Gruumlnde fuumlr den Einsatz von Linux Be-grifflichkeiten und auch die Geschichte von Unixund Linux erklaumlrt werden

Neben weiteren einfachen Themen wie der In-stallation Anmeldung und rudimentaumlren Benut-zung werden Grundlagen des Kernels die Unix-Philosophie und der Umgang mit der Shell inklu-sive der Shellprogrammierung behandelt DesWeiteren werden Themen der System- und imspeziellen der Serveradministration und Netz-werksicherheit erlaumlutert

Besonders anzumerken ist dass die Autoren ei-ne teilweise sehr weite Auffassung von bdquoLinuxldquohaben So beinhaltet das Buch unter anderem

eine kurze Zusammenfassung von LATEX undCrashkurse zu C und Perl sowie allgemeinerenThemen die keinen konkreten Bezug zu Linux ansich haben aber nach der Meinung der Autorenwohl von jedem Linuxanwender gekannt werdensollten

Generell scheinen die Autoren zu versuchen einbestimmtes Bild von Linuxanwendern zu vermit-teln welches stark in die Richtung bdquoProgram-miererldquo beziehungsweise bdquoComputerenthusiastrdquogeht wenngleich dies so nie gesagt wird

Der StilDas Buch ist recht locker verfasst und auch dereine oder andere Smiley hat seinen Weg insBuch gefunden Auszligerdem schrecken die Auto-ren nicht davor zuruumlck ihre eigene Meinung ein-zubringen tun dies aber nicht unnoumltig oft

Trotz des Umfangs des Buches liest es sichauch zum Ende hin nicht langweilig oder trockenEbenso hat der Umfang keinen Einfluss auf dieQualitaumlt der einzelnen Themen Wie bereits an-gedeutet wurde sind manche Themen nur

BuchinformationenTitel Linux Das umfassende HandbuchAutor Johannes Ploumltner Steffen WendzelVerlag Galileo Computing 2012Umfang 1282 SeitenISBN 978-3836218221Preis 4990 Euro

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 42

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

REZENSION

oberflaumlchlich behandelt um dem Leser den Wegzu zeigen inhaltliche Fehler haben sich aberkaum eingeschlichen

BeiwerkAbgesehen vom eigentlichen Inhalt gibt es imAnhang eine Kommandoreferenz mit einer Aus-wahl an Befehlen beziehungsweise Programmenund ihrer Funktionsweise Diese eignet sich abereher zum Schmoumlkern als zum Nachschlagen ndashfuumlr Letzteres ist es einfacher direkt die bdquoman pa-gesldquo zu bemuumlhen

Auszligerdem gibt es einen Index der teilweise hier-archisch gestaltet ist sodass beispielsweise dasStichwort bdquoEmacsldquo Unterpunkte wie bdquoFensterldquobdquoKonfigurationldquo und bdquoPufferldquo hat

Schlieszliglich liegen dem Buch zwei DVDs mitden Distributionen Ubuntu openSUSE FedoraOpenBSD und Slackware sowie einigen Open-books bei

FazitDas Buch mag nicht fuumlr die geeignet sein die nureinen Browser und einen E-Mail-Client brauchenAber wer sich wirklich fuumlr Linux interessiert ent-weder als Ein-Umsteiger oder auch bereits alsBenutzer der einfach mehr lernen moumlchte demkann das Buch empfohlen werden

Und wer sich nicht sicher ist ob das Buch etwasfuumlr ihn waumlre kann in das von Galileo angebote-ne Openbook schauen [2] welches identisch mitdem gedruckten Buch aber frei verfuumlgbar ist

LINKS[1] httpwwwgalileocomputingdekatalogbuecher

inhaltsverzeichnisgptitelID-2963[2] httpopenbookgalileocomputingdelinux

Autoreninformation

Dominik Honnef (Webseite) istlangjaumlhriger Linuxanwender undProgrammierer und bei Fachliteraturzu komplexen Themen wie Linuximmer skeptisch

Diesen Artikel kommentieren

bdquoSuspicionldquo copy by Randall Munroe (CC-BY-NC-25) httpxkcdcom632

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 43

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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • 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 AnmerkungenFuumlnfter freiesMagazin-Programmierwettbewerb

Zitat ldquorekursive Suche und Analyse von Da-teien mit bestimmten Dateiendungenldquo Bedeutetdas dass ein Ordner angegeben wird und alledarin enthaltenen Dateien mit angegebener En-dung analysiert werden sollen anstatt nur einerDatei [ ]

Die Beschreibung schlieszligt Gruppenarbeitennicht explizit aus ist dies auch so gemeint

Ist eine Lemmatisierung [1] also die Reduktioneines Wort auf die Grundform erforderlich odergewuumlnscht Eine manuelle Lemmatisierung wauml-re einfach umsetzbar aber nicht benutzerfreund-lich waumlhrend eine automatische Lemmatisierungwomoumlglich von sehr wenigen umgesetzt werdenkann sebix (Kommentar)

Ja das Programm soll mehrere Dateiengleichzeitig verarbeiten koumlnnen Eine rekursiveSuche uumlber Ordner bietet sich da an

Und wie in den vorherigen Wettbewerb ist eineGruppenarbeit natuumlrlich erlaubt

Eine Lemmatisierung ist nicht gefordert Aber eswuumlrde bei einer Umsetzung natuumlrlich Bonuspunk-te bringen wie jedes andere Feature auch waszusaumltzlich eingebaut wird und sinnvoll anwend-bar ist Dominik Wagenfuumlhr

Was ist mit der rekursiven Suche gemeintSoll ich einen Ordner rekursiv durchsuchen

Wie groszlig istsind die zu bearbeiteten Datein un-gefaumlhr 300KB oder 3MB Tor

Frage 1 Ja man soll einen Ordner angebenkoumlnnen und Dateiendungen und dann sollen al-le passenden Dateien in dem Ordner und allenUnterordnern durchsucht werden

Frage 2 Das variert zwischen ca 200 kb und 25MB Dominik Wagenfuumlhr

Sehe ich das richtig dass die Qualitaumlt der Wol-ke nicht bewertet wird Sprich es ist nicht wichtigwelche Worte gewaumlhlt werden

Welche Sprache werden die Dokumente sein

Das Programm braucht auch keine GUI oderEin BildHTML generieren reicht

Ben (Kommentar)

Es ist sowohl wichtig dass die Wortwolke kor-rekt ist (das heiszligt die am haumlufigsten auftreten-den Woumlrter anzeigt) als auch dass sie anspre-chend aussieht

Die Sprache der Dokumente sollte keine Rol-le spielen und es wird sich auch nicht unbe-dingt auf natuumlrliche Sprachen beschraumlnkt Da dieTrennzeichen einstellbar sein sollen (bdquoEingabevon Trennzeichenldquo) sind auch andere Sprachenmoumlglich Eine Analyse bzw Erkennung der Spra-che ist nicht notwendig

Und nein eine GUI ist keine Voraussetzung EinSkript oder eine Konsolenanwendung sind ge-nauso zugelassen und werden nur nach der ge-nerellen Bedienbarkeit bewertet

Dominik Honnef

UML-Programme im Test

Zu Fujaba Dass der Download schwierigzu finden ist kann ich gut nachvollziehen (Linkzum Download [2]) Wobei zu den Downloadszu erwaumlhnen ist neuere Forschungsergebnissewerden der Homepage zur Folge nur in Fuja-ba4Eclipse eingepflegt nicht in die Standalone-Variante D h das Eclipse-Plug-in ist houmlchstwahr-scheinlich aktueller

Vielleicht kannst Du ja doch noch einen Test vonFujaba nachreichen Jan (Kommentar)

Danke fuumlr die Anmerkung die Installations-seite von Fujaba ist recht leicht zu finden Aberwenn ich auf einen der drei Links unter bdquoFujabaTool Suite Compilations (stand-alone)ldquo klicke er-halte ich uumlberall nur die Meldung bdquoInternal ServerErrorldquo oder bdquo403 Forbiddenldquo

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 44

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

LESERBRIEFE

Das Plug-in fuumlr Eclipse kann man sicherlich her-unterladen aber es interessierte mich nicht daich wie im Artikel geschrieben nichts in Rich-tung Eclipse testen wollte (Mir selbst ist Eclipseviel zu schwerfaumlllig und komplex um es produktivund sinnvoll einsetzen zu koumlnnen)

Ich fuumlrchte es wird daher zumindest von mir kei-nen Test zu Fujaba geben

Dominik Wagenfuumlhr

Kernel kompilierenVielen Dank fuumlr diesen interessanten Artikel

Es wurden viele Informationen uumlbersichtlich zu-sammengefasst dargestellt Die wesentliche Fra-ge die dieser Artikel offen laumlsst ist die nach demSinn eines selbstgebackenen Kernels Vielleichtwuumlrde ich auch den Versuch wagen moumlglicher-weise auch meine Erfahrungen Anderen mittei-len wenn ich nur wuumlsste fuumlr welche(n) Vorteil(e)Auch konnte ich aus dem Artikel nicht entneh-men woher ich weitere Infos zu den Konfigurati-onseinstellung (fuumlr mein System) bekomme Dasi-Tuumlpfelchen waumlre wenn es eine kleine Uumlbersichtmit bdquogernldquo falsch eingestellten Parametern gaumlbe

Das soll jetzt kein Meckern sein auch wenn essich evtl so liest Besonders zu loben ist dassausfuumlhrlich beschrieben ist wie man den Kernelim Zweifelsfall wieder los wird Auch fand ich sehrgut dass die Voraussetzungen sauber aufgelis-tet sind sogar der erforderliche Plattenplatz DerHinweis auf die Option -j bei make ist sichernicht nur fuumlr den Kernel spannend

Jerry (Kommentar)

Gruumlnde fuumlr ein Eigenkompilat gibt es ei-nige spezielle Hardware bzw Treiber abwei-chende Einstellungen oder die Verwendungder Debugging-Funktionen zum Beispiel Die-se Gruumlnde werden eher auf erfahrene Nutzerund eingefleischte Profis zutreffen Der Sinn die-ses Artikels liegt darin Interessierte zum erstenSchritt in diese Richtung zu bewegen Ob diespaumlter dann aus einem triftigen Grund oder ausreiner Neugier und Bastellust ihre Kernel backenentscheiden sie selbst (Bei mir ist es meist dieNeugier auf die aktuelle Entwicklerversion)

Zu den Konfigurationen Informationen zu denkorrekten Einstellungen sind auf dem schnel-len Weg mit make localmodconfig zu erhal-ten allerdings werden hier nur Module fuumlr aktuellam Rechner aktiven Komponenten aktiviert dieconfig muss also manuell angepasst werdenz B indem man sie mit der config-Datei desaktuell laufenden Kernels oder der Standardcon-figuration (make defconfig) vergleicht

Die bdquogernldquo falsch eingestellten Punkte sindschwierig das unterscheidet sich schon von ei-nem Anwendungsfall zum anderen und von Sys-tem zu System Zum Einstieg sollte man mit Op-tionen die als EXPERIMENTAL gekennzeichnetsind vorsichtig sein ebenso mit Optionen ausdem Bereich bdquoKernel hackingldquo

Mathias Menzer

OpenStreetMapEin kleine Einfuumlhrung vermisse ich wie die

Karten zu verwenden sind Meine Frage nach derpraktischen Nutzbarkeit mit der ich mich auch

schon an eine Kontaktadresse gewandt habebleibt Mit welcher Methode kann ich mit OSMdie bdquoHauptstraszlige 25bldquo in meiner Stadt finden

Gast (Kommentar)

Das ist ganz einfach

httpwwwopenstreetmaporg [3] an-steuern

Links bei bdquoSuchenldquo z B bdquoHauptstraszlige 25 Bil-lerbeckldquo eingeben

Auf bdquoLosldquo klicken In der Ergebnisliste den richtigen Ort den man

meint anklicken

Auf der deutschen Seite [4] ist das ganze nochetwas mehr aufbereitet Dominik Wagenfuumlhr

Debian auf QNA TS-509 ProDie QNAPs sehe ich durch die Kombination

mehrerer Punkte anderen NAS-GeraumltenMicro-Linux-Plattformen uumlberlegen

NAS-Geraumlt Festplatte im Gehaumluse integriertDas ist sauberer aufgeraumlumter und schnellerals wenn man noch eine extra Festplatte perUSB anschlieszligen will

Linux ist einfach zu aufzuspielen Es gibt an-sonsten nicht viele preisguumlnstige NAS-Geraumltedie so problemlos mit Linux funktionieren

Die Box ist vergleichsweise guumlnstig Auch eineTS-109 oder Nachfolger reichen bereits aus

Anmerkung nebenbei Die bdquoSchneckeldquo (SLUGLinkSys NSLU2) ist da prinzipiell auch geeig-net Doch leider hat das Geraumlt einen Fehler der

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 45

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

LESERBRIEFE

ihre Zweckmaumlszligigkeit sehr schmaumllert Das Ge-raumlt muss zwingend manuell eingeschaltet wer-den (Stromausfall) Loumlsungen dazu gibt es vieleDoch alles nur Frickelkram fork (Kommentar)

Apache-WebserverGibt es bald auch eine Anleitung wie man

FastCGI einrichtet Es gibt ja gute Gruumlnde heut-zutage kein Modul mehr benutzen zu wollen

Gast (Kommentar)

Es ist uns nicht bekannt ob Werner Ziegel-wanger auch einen Artikel zu FastCGI plant Ggffindet sich aber ein anderer Autor unter den Le-sern der hierzu etwas schreiben moumlchte

Dominik Wagenfuumlhr

Der Hinweis auf mod_python im Artikel istetwas nun ndash ungluumlcklich mod_python giltals (total) veraltet und wird nicht mehr aktiv ge-pflegt [5] [6]

Der Hinweis auf das aktuelle und zeitgemaumlszligemod_wsgi waumlre wesentlich besser gewesen zu-mal in freiesMagazin 022011 [7] im Rahmendes Bottle-Artikels schon mal kurz erklaumlrt wurdewie WSGI funktioniert

Jochen Schnelle (Kommentar)

mod_python ist tot ndash im Sinne von bdquoes hat vie-le Schwaumlchen und wird aktuell nicht mehr main-tainedldquo Heutzutage setzt man im Python Umfeldauf mod_wsgi [8] Insofern sollte man die Einbin-dung von Python aus dem Artikel als veraltet an-sehen und nicht benutzen Zudem wird das Kon-

figurieren via mod_wsgi deutlich einfacherHyperion (Kommentar)

MyPaint und Wacom-Tablett-Unterstuumltzung

Lange hab ich auf einen Artikel uumlber die Toolsim kuumlnstlerischen Bereich gehofft Vielen Dankfuumlr den Artikel Ich verwende MyPaint begeistertschon einige Zeit und kann die Empfehlung nurunterstreichen

Die Unterstuumltzung von Wacom Grafiktabletts (uumlb-rigens auch andere guumlnstigere) nutze ich eben-falls Die Wacom Intuos Tabletts haben (im Ge-gensatz zu anderen Tabletts) neben dem Druck-sensor weitere Informationen zu bieten (Stiftdre-hung Stiftschraumlglage) Durch die Stiftdrehungkann man z B virtuelle Kalligrafiefedern wirk-lich erst verwenden (wer Tuschefedern verwen-det weiss was ich meine) Und durch die Stiftnei-gung kann man z B bei Stiften die Strichbreiteaumlndern waumlhrend Druck die Saumlttigung aumlndert

Vor vielen Jahren hatte ich auf Windows mal einTool das diese Informationen verarbeiten konn-te es geht also Dafuumlr jedoch suche ich Unter-stuumltzung unter Linux bisher vergebens IrgendeinTipp Oliver Horn (Kommentar)

Ich habe leider aktuell kein Intuos Tablet hiervorliegen allerdings koumlnnte es vielleicht hilfreichsein einmal den Artikel im ThinkPad-Wiki anzu-schauen [9] Hier bietet der Autor ein Rotations-skript an welches unter anderem folgende Funk-tionen mitbringt

Bildschirm der Reihe nach von bdquoNoneldquo uumlberbdquoRightldquo nach bdquoinvertedldquo und weiter zu bdquoLeftldquo undwieder nach bdquoNoneldquo drehen

Stift bdquomitdrehenldquo Belegung der Hoch- Runter- Rechts-(Vor)-

und Links-(Zuruumlck)-Buttons nach der Bild-schirmausrichtung aumlndern

Bildschirmausrichtung in einen Status-Fileschreiben

Ich denke bdquoStift mitdrehenldquo deckt das Themen-gebiet ab Leider kann ich es aber hier nicht tes-ten Der Autor verweist aber unter den empfeh-lenswerten Programmen unter Linux auch aufMyPaint Patrick Meyhoumlfer

LINKS[1] httpsdewikipediaorgwikiLemma_(Lexikografie)[2] httpwwwopenstreetmaporg[3] httpwwwopenstreetmapde[4] httpwwwmodpythonorg[5] httpsdewikipediaorgwikiMod_python[6] httpwwwfreiesmagazindefreiesMagazin-2011-

02[7] httpcodegooglecompmodwsgi[8] httpthinkwikideLinux_auf_X-Tablets

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

Die Leserbriefe kommentieren

copy freiesMagazin CC-BY-SA 30 Ausgabe 042012 46

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

MAGAZIN

VeranstaltungskalenderMessen

Veranstaltung Ort Datum Eintritt LinkEasterhegg Basel 0604ndash09042012 50 EUR httpwwweasterheggeuEdu Days Krems 1104ndash12042012 frei httpwwwedudaysatLinuxwochen Eisenstadt Eisenstadt 2004ndash21042011 frei httplinuxwochenatUnFUCK Furtwangen 2704ndash29042012 ndash httpunfuckeuUbucon 12 Winterthur 28042012 frei httpubuconchGrazer Linuxtage Graz 28042012 frei httplinuxwochenatLinuxwochen Wien Wien 0305ndash05052012 frei httplinuxwochenatSaarCamp Saarbruumlcken 0505ndash06052012 ndash httpsaarcampmixxtdeLUG Camp Flensburg 1705ndash20052012 ndash httpwwwlug-camp-2012deSigint Koumlln 1705ndash21052012 ndash httpsigintcccdeLinuxTag Berlin 2305ndash26052012 20 EUR httpwwwlinuxtagorgLiWoLi 2012 Linz 2405ndash26052012 frei httplinuxwochenatRootCamp Berlin 2505ndash26052012 15 EUR httprootcampmixxtdeGPN12 Karlsruhe 0706ndash10062012 ndash httpsentropiadeGPN1213 Libre Software Meeting Genf 0707ndash12072012 frei http2012rmllinfo

(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

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 042012 47

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum

MAGAZIN

ImpressumfreiesMagazin erscheint als PDF und HTML einmal monatlich

KontaktE-MailPostanschrift freiesMagazin

co Dominik WagenfuumlhrBeethovenstr 9171277 Rutesheim

Webpraumlsenz httpwwwfreiesmagazinde

Autoren dieser AusgabeHans-Joachim Baader S 28Herbert Breunung S 14Dominik Honnef S 42Nico Maikowski S 18Mathias Menzer S 3Michael Niedermair S 40Daniel Noumlgel S 9Jochen Schnelle S 38Uwe Steinmann S 22Dominik Wagenfuumlhr S 5 S 32

ISSN 1867-7991Erscheinungsdatum 1 April 2012

RedaktionDominik Honnef Thorsten SchmidtMatthias Sitte Dominik Wagenfuumlhr (Verantwortli-

cher Redakteur)

Satz und LayoutAndreas Breitbach Holger DinkelDominik Frey Tobias KempferNico Maikowski Ralph PavenstaumldtStefan 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 042012 48

  • Editorial
  • Linux allgemein
    • Der Maumlrz im Kernelruumlckblick
      • Anleitungen
        • Objektorientierte Programmierung Teil 2 ndash Die richtige Strategie
        • Python ndash Teil 12 Regulaumlre Ausdruumlcke
        • Perl-Tutorium ndash Teil 6 Objekte der alten Schule
        • Selenium meets Java
          • Software
            • Dokumentenmanagement mit LetoDMS
            • Fish Fillets ndash Next Generation
              • Community
                • DANTE-Tagung 2012 in Leipzig
                • Rezension jQuery Novice to Ninja
                • Rezension LPI-Level 1 ndash Die LPIC-1-Zertifizierung
                • Rezension Linux Das umfassende Handbuch (5 Auflage)
                  • Magazin
                    • Leserbriefe
                    • Veranstaltungskalender
                    • Konventionen
                    • Impressum