<<

freiesMagazin November 2011

Topthemen dieser Ausgabe

Ren’Py als Entwicklertool für 2-D-Spiele Seite 28 Textadventures waren lange Zeit auch in Deutschland sehr populär. Ihre Hochzeit hatten sie vielleicht in den 80er/90er Jahren, doch mit der Neuartigkeit der 3-D-Shooter verschwanden sie beinahe ganz. Hierzulande! In Japan machte Mitte des letzten Jahrzehnts eine eigene Art von Textadventures einen Großteil des Spielemarktes aus. Bei Ren’Py handelt es sich um ein plattformübergreifendes Open-Source-Software-Entwicklungskit (SDK), das seine Ursprünge in der Bewunderung für diese japanischen Spiele hat. (weiterlesen)

Kurzreview: Humble Voxatron Debut Seite 36 Nachdem Ende Juli/Anfang August das dritte Humble Indie Bundle ins Rennen ging, veröf- fentlichten die Humble-Macher Ende September/Anfang Oktober bereits das nächste Bund- le namens Humble Frozen Synapse Bundle. Und nicht einmal einen Monat danach er- schien das „Humble Voxatron Debut“, dessen Inhalt in diesem Artikel kurz vorgestellt werden soll. (weiterlesen)

Bericht von der Ubucon 2011 Seite 39 Das fünfte Jahr Ubucon und das zweite Jahr in Leipzig. Das Fazit der Besucher vorab: Es hat extrem viel Spaß gemacht, neue und vor allem alte Gesichter wiederzusehen und die Zeit gemeinsam zu verbringen. Viele Vorträge, Workshops und Diskussionsrunden sorgten bei den circa 200 Teilnehmern für reges Interesse und vor allem bei den Social Events am Abend konnte man sich gut austauschen. (weiterlesen)

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 ISSN 1867-7991 MAGAZIN

Editorial

Korrektur zum Paketabhängigkeiten- Wir möchten an dieser Stelle noch einmal dar- Inhalt Artikel auf hinweisen, dass es sinnvoll ist, nicht bis zur letzten Sekunde mit der Einsendung zu warten. allgemein Auf den Artikel „Die Nachteile der Paketabhängig- Korrekturen an den Bots sind bis zum Einsende- und 11.10 S. 3 keiten“ aus freiesMagazin 10/2011 [1] gab es ei- schluss am 30. November 2011 jederzeit mög- Erweitertes RC-System von OpenBSD S. 11 nige Reaktionen. Eine davon [2] korrigierte auch lich. Der Oktober im Kernelrückblick S. 14 eine Aussage von Dominik Wagenführ, dass die Installation der Qt-Pakete aufgrund der Versions- Perl ist wieder da Anleitungen abhängigkeit stattfindet. Im letzten Monat fragte ein Leser auch nach, Perl-Tutorium: Teil 3 S. 16 PHP-Programmierung – Teil 2 S. 20 Diese Aussage im Artikel ist falsch und soll wo denn der nächste Teil des Perl-Tutoriums hiermit korrigiert werden. Die Paketabhängigkei- bleibt [5]. Uns und den Autor freut natürlich die Software ten entstehen, weil in Ubuntu/ die Qt- Nachfrage und diesen Monat geht die Reihe Pixelfreie Screenshots S. 26 Binärpakete aus einem einzigen Quellpaket er- auch weiter. Aus zeittechnischen Gründen kön- zeugt werden. Wenn in dem Quellpaket ein Feh- nen wir aber nicht garantieren, dass bei Serien- Ren’Py als Entwicklertool für 2-D-Spiele S. 28 ler gefunden und korrigiert wird, müssen auch al- Artikeln wirklich jeden Monat immer ein Artikel Kurzreview: Humble Voxatron Debut S. 36 le Binärpakete neu erstellt werden. erscheint. Community Wir entschuldigen uns bei allen Lesern, dass die- Und nun wünschen wir Ihnen viel Spaß mit der Bericht von der Ubucon 2011 S. 39 ser Fehler unterlaufen ist. neuen Ausgabe. Freie Software in der Schule S. 44 Rezension: Android 3 S. 46 Ihre freiesMagazin-Redaktion Zwischenstand zum vierten Program- Rezension: Canvas – kurz & gut S. 48 mierwettbewerb LINKS Rezension: NetBeans Platform 7 S. 49 Der vierte freiesMagazin-Programmierwettbewerb [1] http://www.freiesmagazin.de/freiesMagazin-2011- 10 Magazin läuft nun bereits etwas über einen Monat [3]. Es Editorial S. 2 gab bereits zahlreiche Kommentare und Anfra- [2] http://www.freiesmagazin.de/20111002- Veranstaltungen S. 51 gen von Lesern, die Interesse an einer Teilnahme oktoberausgabe-erschienen#comment-2141 Vorschau S. 51 bekunden. Es gibt sogar schon drei Einsendun- [3] http://www.freiesmagazin.de/20111001-vierter- Konventionen S. 51 gen zum Wettbewerb. freiesmagazin-programmierwettbewerb-gestartet Impressum S. 52 [4] http://www.freiesmagazin.de/vierter_programmier Die Fragen der Teilnehmer wurden in eine FAQ wettbewerb#faq zusammengefasst und an die Wettbewerbsseite [5] http://www.freiesmagazin.de/20111002- angehängt [4]. oktoberausgabe-erschienen#comment-2136 Das Editorial kommentieren

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20112 DISTRIBUTION

Ubuntu und Kubuntu 11.10 von Hans-Joachim Baader

it neuen Varianten, erweitertem Neuerungen auf dem Desktop, darunter eine ver- Softwareangebot und verbesserten besserte Version von und das neue KDE M Diensten schickt sich Ubuntu an, die SC 4.7.1, bringt Ubuntu 11.10 auch Installations- Gemeinschaft noch besser als bisher zu be- Images für die ARM-Systeme Netbook Toshiba dienen. Eine verbesserte Paketverwaltung ac100 [2] und Freescale i.MX53 [3]. Ubuntu Ser- und aktualisierte Desktops wurden nebenbei ver enthält jetzt wieder den Hypervisor Xen, aber noch mitgenommen. auch Unterstützung für Linux-Container (LXC). Enthalten ist auch Orchestra, eine Sammlung Redaktioneller Hinweis: Der Artikel „Ubuntu der besten freien Software-Dienste, um die Infra- und Kubuntu 11.10“ erschien erstmals bei Pro- struktur in Rechenzentren zu verwalten. Ferner Linux [1]. wurde , das unter dem Namen Ensemble entwickelt wurde, integriert, ein Werkzeug, um Vorwort die Verteilung und Verwaltung von Diensten auf Planmäßig wie jedes halbe Jahr erschien Cloud- und normalen Servern zu ermöglichen. Begrüßungsbildschirm der Kubuntu-DVD. die neue Version 11.10 „Oneiric Ocelot“ der Auch vom Server gibt es eine ARM-Variante. Und gehörende Softwarepakete geändert oder er- Linux-Distribution Ubuntu. Neben zahlreichen dann gibt es noch die neue Variante , die setzt. Mit wenigen Ausnahmen kann auf die- den LXDE-Desktop als Standard instal- se Änderungen nicht eingegangen werden; man liert. darf annehmen, dass die meisten Pakete unter allen aktuellen Distributionen nahezu gleich sind Wie ihr Vorgänger Ubuntu 11.04 (siehe und überall gleich gut funktionieren. freiesMagazin06/2011 [4]) ist die neue Version keine Version mit längerfristi- Wie immer sei angemerkt, dass es sich hier gem Support. Sie wird in allen Varian- nicht um einen Test der Hardwarekompatibilität ten 18 Monate mit Sicherheits- und ande- handelt. Es ist bekannt, dass Linux mehr Hard- ren wichtigen Updates versorgt. Ein Up- ware unterstützt als jedes andere Betriebssys- date ohne Neuinstallation von der Ver- tem, und das überwiegend bereits im Standard- sion 11.04 wird offiziell unterstützt. Lieferumfang. Ein Test spezifischer Hardware wä- re zu viel Aufwand für wenig Nutzen. Falls man Dieser Artikel wird sich auf die Desktop- auf Probleme mit der Hardware stößt, stehen die umgebungen Unity und KDE beschrän- Webseiten von Ubuntu zur Lösung bereit. ken. Aus praktischen Gründen sind auch andere Einschränkungen nötig. So wur- Da eine Erprobung auf realer Hardware nicht das Erneuertes Unity: Übersichtsseite mit Linsen. den natürlich zahlreiche zur Distribution Ziel des Artikels ist, werden für den Artikel zwei

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20113 DISTRIBUTION

wer den Rechner intensiv nutzt, gen wie „Ubuntu 11.10 auf Ubuntu 11.10 aktuali- sollte bei den heutigen Speicher- sieren“ führen. preisen lieber gleich in 4 GB Standardmäßig wird nur eine einzige Partiti- RAM (oder mehr, je nach Bedarf) on plus Swap angelegt. Will man mehr Flexi- und ein 64-Bit-System investieren, bilität, muss man „Etwas anderes“ auswählen, so dass reichlich Platz für die wodurch das Partitionierungswerkzeug gestartet Anwendungen ist. und wird. Dort kann unter anderem das Dateisys- die Server-Edition sollten weiter- tem Btrfs ausgewählt werden, das nun dank si- hin mit 128 MB auskommen. gnifikanter Verbesserungen ohne Einschränkun- gen nutzbar sein soll, abgesehen davon, dass es Hier soll nur die Installation von noch kein fsck-Tool gibt. der Desktop-DVD kurz vorgestellt werden. Wer den Logical Volume Der Einhängepunkt einer Partition kann nun wie- Manager (LVM) verwenden will, der frei eingegeben werden, aber man kann auch muss zur textbasierten Installation aus der Vorgabe einen auswählen. Direkt nach von der DVD oder der Alternate- der Definition der Partitionen beginnt der Installer CD wechseln, da diese Möglich- mit der Partitionierung und der Installation der Pa- Ubuntu installiert sich. keit im grafischen Installer nach kete im Hintergrund. Ein Fortschrittsbalken zeigt identische virtuelle Maschinen, 64 Bit, unter KVM wie vor fehlt. Die Alternate-Installation läuft an- von hier an den Stand der Installation an. Paral- mit jeweils 768 MB RAM verwendet. sonsten fast genauso ab wie die grafische Instal- lel dazu kann man die Zeitzone auswählen und lation. Durch Boot-Optionen steht aber eine er- danach das gewünschte Tastatur-Layout einstel- Installation weiterte Installation zur Verfügung, mit der man len. Die Neuerung von Fedora 15, die die Aus- Ubuntu wird meist von einem Live-System aus, weitgehende Kontrolle über den ganzen Vorgang wahl der Zeitzone mit der Maus einfacher macht, das als CD und umfangreichere DVD verfügbar hat. Auch die Option, die gesamte Festplatte zu indem bei einem Klick auf eine Region diese au- ist, installiert. Ferner ist eine Installation von der verschlüsseln, was auf Laptops zu empfehlen ist, tomatisch herangezoomt und die nächstgelege- Alternate-CD, möglich, die im Textmodus läuft, gibt es nur auf der Alternate-CD. ne Stadt gewählt wird, ist bei Ubuntu leider noch aber wesentlich mehr Flexibilität als die grafische nicht zu finden. Installation besitzt. Die Installation unterlag nur wenigen Änderun- Im letzten Schritt gibt man seinen Namen, Anmel- Für Ubuntu 11.10 werden 384 MB RAM für den gen gegenüber der letzten Version. So kann ein denamen, Passwort und den Computernamen Unity-Desktop als Mindestanforderung angege- bereits installiertes Ubuntu-System vom Desktop- ein. Wenn zuvor bereits per DHCP ein Name er- ben. Mit 512 MB und mehr läuft das System al- Installer aus aktualisiert oder neu installiert wer- mittelt werden konnte, wird dieser als Vorgabe lerdings wesentlich besser. Kubuntu ist aufgrund den, wenn eine Internet-Verbindung vorhanden angezeigt. Wenn erkannt wird, dass die Instal- des größeren Speicherbedarfs von KDE unter ist. Ist die vorherige Installation bereits Ubuntu lation in einer virtuellen Maschine läuft, wird da- 512 MB RAM fast nicht zu benutzen – aber 11.10, kann das allerdings zu kuriosen Vorschlä- gegen der Name benutzer-virtual-machine

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20114 DISTRIBUTION vorgegeben. Optional können Daten im Home- eingeloggt ist, ein Passwort ver- Verzeichnis verschlüsselt werden. Während man gibt, ist auch das direkte Einlog- das Ende der Installation abwartet, kann man gen als Root möglich. nun noch einige Tipps zu Ubuntu ansehen. Unity benötigt direkt nach dem Start mit einem geöffneten Ausstattung Terminal-Fenster etwa 320 MB Sowohl Ubuntu als auch Kubuntu starten schnell, RAM, KDE etwa 430 MB. Wer mindestens genauso schnell wie in der Vorver- der Meinung ist, auf Nepomuk sion. Sofern kein automatisches Login konfigu- und Desktopsuche in KDE ver- riert wurde, muss man sich anmelden, was unter zichten zu können, kann diese Ubuntu jetzt mit LightDM, der gdm ersetzte, unter abschalten, wird dadurch aber Kubuntu weiter mit kdm geschieht. Danach wird fast nichts einsparen. der vollständige Desktop zügig aufgebaut. Bei der Geschwindigkeit lässt sich kein nennenswerter Unter- Der verwendete Kernel beruht auf Linux 3.0.4. schied zwischen den Desktops Auswahl der Partitionierungsmethode. Damit soll eine höhere Geschwindigkeit des feststellen, sofern genug RAM Dateisystems ext4 ebenso einhergehen wie ei- vorhanden ist. Für KDE bedeu- ne verbesserte Interaktivität. Das System unter- tet das, dass man mindestens stützt jetzt Multiarch, das heißt, dass auf einem 768 MB RAM haben sollte. 64-Bit-System 32-Bit-Programme installiert wer- den können und auch sofort lauffähig sein soll- Den Speicherverbrauch der ten – früher musste man dafür mitunter mühsam Desktops zu messen ist nicht nach den benötigten 32-Bit-Bibliotheken suchen einfach. Schwankungen von und spezielle Kompatibilitätspakete installieren. 20 MB und mehr nach oben Der X-Server 1.10.1 und Mesa 7.10.2 bilden die und unten sind möglich, je Basis für die grafische Oberfläche einschließlich nach dem Zeitpunkt der Mes- der 3-D-Beschleunigung. sung. Dies erklärt sich teil- weise daraus, dass manche Wie gewohnt hat Root keinen direkten Zugang Programme bei ihrem Start zum System. Zugang zum Root-Account ist aber einen oder mehrere Diens- über das Kommando sudo vorhanden. Damit te starten. Diese Dienste kann man jeden beliebigen Befehl ausführen, werden bei Nichtbenutzung nachdem man sein eigenes Passwort eingege- teilweise nach einiger Zeit ben hat. Wenn man, nachdem man als Root auch wieder beendet. So sind Der Login-Bildschirm von LightDM.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20115 DISTRIBUTION die Angaben zum Speicherverbrauch nur als An- tätig. Weitere Anpassungen von Unity sind mög- men sind allerdings vor manchen Hintergründen haltswerte zu sehen, die sich je nach Hardware lich. Wem zum Beispiel das von den Anwen- nicht zu sehen. erheblich unterscheiden können. dungen getrennte und in das Panel verlegte An- Der Starter ist immer sichtbar, außer wenn ein wendungsmenü nicht zusagt, der kann das Pa- anderes Programm den Platz beansprucht. Dann Unity ket indicator-appmenu entfernen, damit ist das fährt er links aus dem Bildschirm heraus – theore- Unity, in der Vorversion erstmals weit verbreitet alte Verhalten wieder vorhanden. Weitere Ein- tisch. Startet man GIMP,stellt man fest, dass sich eingesetzt, wurde massiv überarbeitet. Erst ein- griffsmöglichkeiten bieten die Indikator-Applets. dessen Mehrfenster-Modus nicht mit dem Starter mal wurde Unity auf GTK 3 portiert und nutzt Indikator-Applets sind die von Ubuntu entwickelte verträgt: Das Tool-Fenster wird unter den Star- nun Komponenten von GNOME3 und keine mehr Ablösung der GNOME-Panel-Applets, die in Uni- ter gelegt. Möglicherweise existiert das Problem von GNOME2. Das eigentliche Unity setzt ei- ty nicht mehr funktionieren. Es gibt inzwischen ei- aber auch nur in Unity 2D. ne Hardwarebeschleunigung der 3-D-Grafik vor- ne ganze Reihe von Indikator-Applets [5], die die aus und nutzt den Compositing-Manager Com- Funktion der alten Applets übernommen haben. Die bisherigen „Orte“ in Unity wurden durch „Lin- piz. Steht keine Hardwarebeschleunigung zur Sie werden überwiegend über die Paketverwal- sen“ ersetzt. Klickt man das Ubuntu-Icon, so er- Verfügung, wird automatisch Unity 2D genutzt, tung installiert, wofür man aber zum Teil private scheint die Schnellauswahl (Dash), in der man in- das nun kaum mehr vom normalen Unity zu un- Paketrepositories einbinden muss. Eines dieser stallierte Programme suchen und mit den neuen terscheiden ist, außer dass weniger Grafikeffek- Applets stellt sogar das alte GNOME-Menü wie- Linsen nach verschiedenen Kriterien filtern kann. te genutzt werden. Einen Fallback-Modus gibt es der her. nun nicht mehr. Unity 2D ist allerdings mit Qt im- Apropos Indikatoren – diese wur- plementiert und dürfte sich damit intern erheblich den von den Entwicklern ein we- von Unity unterscheiden, auch wenn es funktio- nig überarbeitet, der Sitzungsindi- nal angeglichen wurde. kator wurde neu gegliedert und Die augenfälligste Änderung in Unity ist, dass der Energierstatus-Indikator, so- der Ubuntu-Button vom Panel in den Starter fern er benötigt wird, von den wechselte und nun dessen oberstes Element anderen separiert. Das Wech- darstellt. Unity ist jetzt etwas mehr konfigurier- seln der Fenster mittels Alt + Tab bar. Allerdings kann von einer konsequenten wurde neu implementiert. Es er- und konsistenten Konfigurierbarkeit, wie sie bei scheint nun ein kleines Fenster KDE gegeben ist, noch keine Rede sein. Vie- in der Mitte des Bildschirms, das les wird über Compiz konfiguriert. Dazu muss erstens den Titel der Fenster an- man CompizConfig nachinstallieren. Einige we- zeigt, zweitens die Position des nige andere Optionen halten die GNOME3- aktuellen Zielfensters als dünnen Systemeinstellungen bereit. Für noch mehr Konfi- Rahmen anzeigt und drittens nur gurierbarkeit sollte man auch dconf-tools instal- innerhalb der aktuellen Arbeitsflä- lieren. Doch auch die Gemeinschaft war nicht un- che wechselt. Die dünnen Rah- Der Starter überlagert das GIMP-Fenster.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20116 DISTRIBUTION

Außer Programmen kann man auch Dateien su- GNOME-Panels („klassisches“ chen, wobei man schnell auf die zuletzt benutz- GNOME) wieder herstellen. Das ten zugreifen kann, und Musik, wobei auch Ange- GNOME-Mailprogramm Evoluti- bote aus dem Music Store eingeblendet werden. on wurde allerdings durch Mozil- Letzteres ist mit der Musikverwaltung Banshee la Thunderbird 7.0.1 ersetzt, der verknüpft. wie Firefox eine Integration in den Starter und das Menü aufweist. Unity mag in gewisser Weise frischen Wind auf den Desktop bringen, aber es leidet immer noch Als Webbrowser ist jetzt Firefox unter zahlreichen Unzulänglichkeiten. Binnen we- 7.0.1 dabei. Das Standard-Office- niger Minuten konnte ich mühelos meherere da- Paket ist LibreOffice 3.4.3. Startet von finden. man LibreOffice Writer, dann er- scheint die Menüleiste nicht im Pa-  Anwendungen haben normalerweise ein Kon- nel, sondern in der Anwendung, textmenü in der Titelleiste, mit dem man sie die Buttons zum Schließen, Mini- z. B. auf eine andere Arbeitsfläche verschie- mieren und Maximieren erschei- ben kann. Ist das Fenster der Anwendung ma- nen gar nicht, und es ist nicht mög- Startseite des Software Centers. ximiert, ist dieses Menü nicht mehr aufrufbar, lich, vom maximierten Modus weg- zumindest mit der Maus nicht. zugehen. Das Problem tritt nur bei Writer auf, bei bei vielen Shopping-Seiten, bewerten, Rezensio-

 Hat man im Hintergrund ein maximiertes Fens- Calc dagegen nicht. nen ansehen und eigene schreiben (sofern man ter und im Vordergrund ein kleineres Fens- das Programm installiert hat). Proprietäre Pro- Installiert sind auch Banshee 2.2.0, Inkscape ter, so gibt es keine Möglichkeit, das Fens- gramme kann man direkt einkaufen. Um diese 0.48.2, GIMP 2.6.11, Shotwell 0.11.2, Pitivi ter im Hintergrund zu minimieren. Man muss Funktionen zu nutzen, muss man ein Konto beim 0.15.0 sowie die Gnome-Anwendungen Empathy, es erst in den Vordergrund holen, damit der haben, das vermutlich Gwibber, Vinagre und Totem. Minimieren-Button erscheint. auch für dient. Das Software Center, das Hauptwerkzeug zur  Bei der Definition der Tastenkürzel kann man Bei der Installation hat man nun die Möglichkeit, Installation und Verwaltung von Paketen, nicht je- jeder Aktion nur höchstens eine Tastenkombi- das neue Programm gleich zum Starter hinzuzu- doch zum Einspielen von Updates, wurde gründ- nation zuweisen. Warum nicht mehrere? Das fügen. Interessant ist auch die Möglichkeit, die lich überarbeitet. In Version 5.0 wurde der Navi- ist allerdings ein GNOME-Problem, weniger ei- Liste der installierten Anwendungen zwischen gationsbaum durch eine Werkzeugleiste ersetzt. nes von Unity. Rechnern zu synchronisieren. Um diese neue Ein Werbebanner sowie neue und die bestbe- Funktion OneConf [6] nutzen zu können, muss Der Desktop ist natürlich nicht Unity allein. werteten Anwendungen füllen das Fenster der man aber ebenfalls ein Online-Konto haben. Ubuntu hat nun GNOME 3.2 integriert, und Anwendung aus. Von hier kann man dann zu den wer will, kann den orginalen GNOME-Desktop Paketen navigieren, den Bestand durchsuchen Die Bedienung des Software Centers, das übri- durch die Installation der GNOME-Shell oder des oder in den Kategorien blättern. Man kann, wie gens Freie Software ist, weist allerdings einige

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20117 DISTRIBUTION

Probleme auf. So kann man die Versionsnummer Das Repository oneiric-backports ist nun stan- Zeit mit Ausprobieren oder Suchen nach Do- eines Programmes in den Übersichten nicht se- dardmäßig aktiviert. Aktuell besitzt das noch kei- kumentation verbringen muss. Standardmäßig hen. Die Kategorien unter den installierten Pa- ne Relevanz, da es noch nahezu leer ist, spä- sind bei Kubuntu bereits drei Aktivitäten definiert: keten sehen anders aus als unter „alle Anwen- ter sollen darin aber aktualisierte Versionen von „Desktop Icons“, die Standard-Aktivität mit völlig dungen“ und zum Aufklappen steht nur winziger Programmen erscheinen, die man optional instal- verfehltem Namen, „Photos Activity“ und „Search Pfeil (oder „+“ und „-“) zur Verfügung. Will man lieren kann. Damit sollen es die Benutzer noch and Launch“. Die beiden letzteren sind nicht akti- mehr als ein Paket installieren, muss man jedes leichter haben, auf aktuelle Programme zuzugrei- viert und dienen vielleicht nur als Beispiele. Denn einzeln bearbeiten; es gibt keine Möglichkeit der fen. Für diese gibt es aber von Ubuntu keine Up- wenn man sie startet, erhält man Fehlermeldun- Markierung, um Aktionen auf mehrere Pakete an- dates und keinen Support, die Installation erfolgt gen, da sie Anwendungen starten wollen, die zuwenden. Immerhin kann man mehrere Aktio- auf eigenes Risiko. nicht installiert sind. nen starten, ohne auf die Beendigung der vori- Der Dateimanager Dolphin besitzt standardmä- gen warten zu müssen. KDE (SC) ßig keine Menüleiste mehr, sondern minimiert In Kubuntu wurde sie ähnlich den Browsern Opera, Firefox oder KDE SC auf die Chrome. Anwender, die das alte Verhalten nut- Version 4.7.1 (in- zen wollen, können es mühelos wieder reakti- zwischen durch ein vieren. Der Standard-Browser ist Rekonq, jetzt Update auf 4.7.2) in Version 0.7.90. Erwähnenswert ist dabei nur, aktualisiert, ein- dass man besser Firefox nutzt, den Rekonq be- schließlich der neu- sitzt keine Plug-ins und keine der fortgeschritte- en Version 4.7.2 nen Funktionen von Firefox. von KDE-PIM, der Kubuntu hat an alle Benutzer gedacht, die die Suite zur Verwal- Leistung ihres KDE maximieren wollen, und bie- tung von E-Mails, tet ein Paket kubuntu-low-fat-settings, das ei- Kontakten, Termi- nige Dienste entfernt und somit Speicher spart. nen usw. In dieser Außerdem kann man mittels des experimen- Version hat KDE tellen Pakets -window-manager-gles eine die bisher vielleicht Anpassung von KWin an OpenGL ES auspro- nicht ausreichend bieren. OpenGL ES stellt wie OpenGL 3-D- intuitiven Aktivitä- Hardwarebeschleunigung für die Effekte von ten überarbeitet. KWin bereit, soll aber, da es sich um eine Un- Ob dies gelungen termenge handelt, kompatibler sein. ist, ist noch frag- lich. Ich denke eher, Das Abmelden von KDE und das Herunterfahren Anlegen eines Benutzers. dass man einige des Rechners funktionierten in mehreren Fällen

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20118 DISTRIBUTION

aber wird dann nicht gleich Pakets genauso einfach installieren lässt wie an- Software Center verwendet, dere Software, funktionierten alle Videos. Die Al- das schon um einiges wei- ternative zu Flash, das WebM-Format, sollte in ter ist? Davon abgesehen ist Firefox seit Version 4 kaum Probleme bereiten, Muon aber schon ein ziem- und im Großen und Ganzen scheint es zu funk- lich komplettes Programm, tionieren. Mit einzelnen Webseiten kann es noch das alles kann außer Upda- Probleme geben, was aber nicht genauer unter- tes. Für die Updates steht ein sucht wurde. separates Programm „Muon- Aktualisierungsverwaltung“ zur In den bekannten Anwendungen Banshee und Verfügung. Totem sollte bei standardmäßig nicht unterstütz- ten Formaten eine Dialogbox erscheinen, die Firefox ist jetzt in Version 7.0.1 eine Suche nach passenden GStreamer-Plug- enthalten. Mehrere Plug-ins ins ermöglicht und sie installiert. Wenn Ubuntu zum Abspielen von Videos in mehr als ein Paket findet, das geeignet ist, freien Formaten sind vorinstal- kann man auswählen, welches installiert werden liert. Die vorinstallierte Erweite- soll. Beim MP3-Format sind das beispielsweise rung „Ubuntu Firefox Modifica- ein Fluendo-Plug-in und eine GStreamer-Plug- tions“ hat Version 1.0 erreicht. in-Sammlung. Bei der Auswahl von letzterer las- Laufende Installation in Muon. Darin ist der bereits bekann- sen sich trotzdem keine MP3-Dateien abspielen. nicht. Der größte Stromverbraucher im System te Plugin-Finder-Service enthalten. Will man bei- Eine manuelle Installation weiterer GStreamer- ist immer noch knotify4, dem leider immer noch spielsweise ein Video in einer Webseite abspie- Pakete ist nötig. kein vernünftiges Verhalten beigebracht wurde. len, sollten sich komfortabel passende Plug-ins Dieses Programm allein sorgt mit seinen per- finden und installieren lassen. Das funktionierte Banshee muss nach der Installation neuer Co- manenten und unnötigen Aktionen für 2 % CPU- im Test in keinem Fall, was aber auch in der letz- decs neu gestartet werden, damit es funktioniert. Grundlast. ten Version schon so war. Nach wie vor versagt der Mechanismus bei eini- gen Videodateien in Totem, auch hier war eine Es scheint eine Regel zu geben, dass alles, was Flash ist wiederum ein anderes Thema. Stan- manuelle Installation nötig. endlich einmal recht gut funktioniert, durch etwas dardmäßig ist kein Flash-Player vorinstalliert. Mit anderes ersetzt werden muss. So wurde die Pa- den freien Flash-Implementierungen Gnash und Unter KDE ist Amarok, jetzt in Version 2.4.3, der ketverwaltung KPackageKit durch Muon ersetzt. Lightspark lief nicht alles so gut wie beim letz- Standard-Audioplayer. Beim ersten Abspielen ei- Langfristig soll dieses Programm wohl die glei- ten Mal, denn kaum ein Video wollte mit Gnash ner MP3-Datei erkennt Amarok, dass ein Plug- chen Funktionen erhalten wie das Software Cen- funktionieren. Erst mit der Installation des Adobe- in fehlt, startet die Paketverwaltung, um danach ter, beispielsweise mit den jetzt schon vorhan- Flash-Plugins, das in Version 11 auch in 64 Bit zu suchen, und installiert auch eine ganze Reihe denen Bewertungen und Rezensionen. Warum zur Verfügung steht und sich dank eines Ubuntu- von Modulen. Nur abspielen kann man danach

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/20119 DISTRIBUTION immer noch nichts. Ähnlich ist es im Standard- tribution mit vielen schlechten Eigenschaften be- ge, die früher einmal besser funktionierten. Al- Videoplayer Dragonplayer. Letztlich mussten die klagen. Doch das hieße, die Fehler stark über- lerdings sind es überwiegend Probleme mit der fehlenden GStreamer-Module über die Paket- zubewerten. Eines soll an dieser Stelle noch anfänglichen Konfiguration. Sie erfordern etwas verwaltung installiert werden. In der Vorversion einmal betont werden: Man sollte die Aussa- Handarbeit, machen die Distribution aber nicht klappte das alles automatisch. ge von Mark Shuttleworth, dass der Ubuntu- prinzipiell schlecht. Denn hat man das System Entwicklungszyklus zwei Jahre lang ist, ernst erst einmal konfiguriert, ist es ein bewährtes Sys- Im Dateimanager Dolphin fehlt weiterhin eine Da- nehmen. Das bedeutet, dass alles, was zwischen tem, auf das man sich hundertprozentig verlas- teizuordnung von Dateien mit dem Suffix .flv. zwei LTS-Versionen erscheint, in Entwicklung be- sen kann. Man darf schon jetzt auf die im April Wenn man diese mit „Öffnen mit . . . “ hinzufügt, findliche und unfertige Elemente enthält. Beson- 2012 erscheinende Version 12.04 LTS gespannt kann man beispielsweise „/usr/bin/dragon“ als ders sieht man das natürlich an Unity. sein, die für volle fünf Jahre unterstützt wird. Programm eintragen, dann läuft alles rund. Ins- gesamt ist die Multimedia-Integration sowohl in Das heißt zwar nicht, dass Unity unbenutzbar LINKS GNOME/Unity als auch in KDE fehlerhaft und ein ist, aber Benutzer, die weniger Experimente (und [1] http://www.pro-linux.de/artikel/2/1534/ubuntu- unerwarteter Rückschritt gegenüber der Version das klassische GNOME) wollen, sollten lieber bei und-kubuntu-1110.html 11.04. Ubuntu 10.04 LTS bleiben. Unity schreitet ganz [2] https://wiki.ubuntu.com/ARM/TEGRA/AC100 klar voran, aber man muss die vorhandenen Kon- [3] https://wiki.ubuntu.com/ARM/MX5 figurationsmöglichkeiten nutzen, um so manchen [4] http://www.freiesmagazin.de/freiesMagazin-2011- Mangel und manches Ärgernis zu beseitigen. Ei- 06 ne recht weitgehende Anpassung von Unity ist [5] http://wiki.ubuntuusers.de/Unity/FAQ zwar möglich, aber nicht konsistent, und man muss an verschiedenen Stellen ansetzen. Für je- [6] https://wiki.ubuntu.com/OneConf manden, der Unity nicht will, ist es aber nicht schwer, zur GNOME-Shell oder zum klassischen Desktop von GNOME3 zu wechseln. Autoreninformation Für Kubuntu bleibt festzuhalten, dass es an KDE Hans-Joachim Baader (Webseite) generell nicht viel auszusetzen gibt, an der Im- befasst sich seit 1993 mit Linux. 1994 plementation in Kubuntu schon mehr. Doch auch schloss er sein Informatikstudium hier handelt es sich um Kleinigkeiten, die man erfolgreich ab, machte die Software- entwicklung zum Beruf und ist einer Startseite von Firefox. schnell in den Griff bekommt. Die vorinstallierte Paketauswahl wird wohl auch nicht jedem gefal- der Betreiber von Pro-Linux.de. Fazit len, doch dafür gibt es die Paketverwaltung. Man könnte Ubuntu und Kubuntu angesichts der Unter den festgestellten Problemen von Ubuntu zahlreichen bemerkten Probleme leicht als Dis- und Kubuntu 11.10 sind ärgerlicherweise Din- Diesen Artikel kommentieren

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 10 LINUXALLGEMEIN

Erweitertes RC-System von OpenBSD von Patrick Hemmen

as erweiterte RC-System von geführt, von dem der Start weiterer Prozesse werden Startskripte für jeden Dienst unter- OpenBSD erleichtert die Integra- kontrolliert wird. Dieses System ist simpel, es halb von /etc/rc.d/ abgelegt. Dies verein- D tion von Programmen aus dem kennt z. B. keine Runlevels. Soll aber ein weite- facht die Handhabung bei einer großen An- Package/Ports-System in den Systemstart. rer Prozess beim Systemstart aktiviert werden, zahl von Diensten, die beim Systemstart ak- Zudem wird die Konfiguration vereinfacht muss das Skript manuell angepasst werden. Feh- tiviert werden sollen, und bietet die Möglich- und übersichtlicher. ler in dieser Datei können dazu führen, dass keit, die Dienste über ihr Skript während des das System nicht mehr ordnungsgemäß star- Betriebs zu steuern. FreeBSD hat bereits in Nachdem der Computer eingeschaltet wird, star- ten kann. Das Skript /etc/rc.local dient als Version 5.0 dieses Konzept übernommen [11]. tet das BIOS und initialisiert die Systemkompo- Erweiterung des Hauptskripts nenten, die für den Systemstart benötigt wer- /etc/rc. Nachdem das den. Vom BIOS wird aus dem Master Boot Re- Hauptskript die wichtigsten cord (MBR) der Urlader gestartet. Unter Linux Systemprozesse gestartet kommt häufig Grub [1] als Urlader zum Einsatz, hat, wird /etc/rc.local unter OpenBSD wird boot [2] eingesetzt. Dieser ausgeführt. Weiterhin wur- Urlader lädt den Kernel von der Festplatte. Un- de das System noch um ter Linux kann eine initrd [3] vom Kernel gela- Konfigurationsdateien er- den werden, die ein minimales Root-Dateisystem gänzt (/etc/rc.conf und für die Einbindung von Treibern bereitstellt. Die- /etc/rc.conf.local). se Technik wird von OpenBSD nicht verwendet, da bereits alle Treiber im Kernel enthalten sind. Im Internet existieren meh- Nachdem der Kernel geladen wurde, wird ein rere Theorien für was RC Prozess gestartet, welcher den weiteren Startvor- die Abkürzung ist. Die nach gang verwaltet. meiner Meinung plausibels- ten sind die des „The Art Startsysteme of Unix Programming“, nach Übersicht des Startvorgangs von OpenBSD. Dieser Vorgang ist bei allen unixartigen Syste- dem RC als Run-Control [8] men ähnlich. In Linux-Systemen wird häufig Init interpretiert wird, und die Erläuterung im Jargon OpenBSD hat bis zur Version 4.9 das alte Sys- in der Variante Sysinit [4] verwendet, dieses wird File, wo RC als runcom [9] beschrieben wird. tem aus zwei RC-Skripts verwendet. Zur leich- aber immer häufiger durch [5] von Red teren Integration von Programmen in den Sys- Hat ersetzt. Solaris setzt seit Version 10 die Ser- Dedizierte Skripte temstart, die aus dem OpenBSD Package/Ports- vice Management Facility [6] ein, Mac OS X be- NetBSD hat sein RC-System [10] schon mit System [12] stammen, wurde eine erweiterte nutzt launchd [7]. Bei BSD-Systemen wird von Version 1.5 um dedizierte Skripte für instal- Version, die dedizierte Skripts unterstützt, in dem Init-Prozess das Shell-Skript /etc/rc aus- lierte Dienste ergänzt. Mit dieser Ergänzung OpenBSD 4.9 integriert [13].

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 11 LINUXALLGEMEIN

Der Kernel startet den Init-Prozess und dieser /etc/rc.d werden die Startskripte für die ein- Maintainer erleichtert. Das Framework bietet Auf- führt das Skript /etc/rc aus. Dieses Skript zelnen Dienste abgelegt. Für Dienste, die im rufe für start, stop, restart, reload und liest seine Konfigurationsdatei und startet mit OpenBSD-System enthalten sind, z. B. sshd oder check eines Dienstes, sodass nicht jeder Main- dem neuen Subsystem /etc/rc.d/ Dienste. An- sendmail, befinden sich bereits Skripte in diesem tainer eigene Routinen für diese Standardaufru- schließend wird das Skript /etc/rc.local aus- Verzeichnis. Die Skripte können auch direkt in ei- fe entwickeln muss. Das Skript für einen Dienst geführt, welches ebenfalls seine Konfiguration ner Shell genutzt werden. Für den Neustart des beschränkt sich daher häufig auf die Einbindung einliest und Dienste über das neue Subsystem sshd muss folgender Befehl als Benutzer root der Frameworkdatei und das Setzen von Varia- startet. eingegeben werden: blen.

# /etc/rc.d/sshd restart Wird ein Dienst aus dem Package/Ports-System Konfiguration von OpenBSD installiert, wird nicht, wie in frühe- Die Erweiterung des RC-System ist noch in einer Dies funktioniert nur, wenn der Dienst in ren Versionen von OpenBSD, eine Empfehlung sehr aktiven Phase der Entwicklung. Daher wur- /etc/rc.conf.local aktiviert wurde. Ist dies für einen Eintrag in der /etc/rc.conf.local de nachfolgende Beschreibung mit dem Snap- nicht der Fall, muss beim Aufruf die Option -f angezeigt, sondern ein Skript mit dem Namen shot vom 22.09.2011 des letztendlich Anfang No- übergeben werden. Die Option ermöglicht einen des Dienstes in /etc/rc.d/ abgelegt. Ob ein vember erschienenen OpenBSD 5.0 erstellt. Start, ohne dass der Dienst aktiviert sein muss. Skript angelegt wurde, sollte zum jetzigen Zeit- punkt noch überprüft werden, da noch nicht alle Übersicht über Startskripte Ports auf das erweiterte System umgestellt wur- /etc/netstart Skript zur Netzwerkkonfiguration den. /etc/rc Hauptskript zum Start des Systems Zur Konfiguration eines einzelnen Dienstes kön- /etc/rc.conf Konfigurationsdatei für Dienste nen in der Datei /etc/rc.conf.local die Va- /etc/rc.conf.local Lokale Konfigurationsdatei für Dienste riable _flag zur Übergabe von Ar- /etc/rc.d Verzeichnis für Startskripte gumenten an den Dienst und mit der Varia- /etc/rc.d/rc.subr Frameworkdatei für Startskripe ble _user der Benutzer bestimmt wer- /etc/rc.firsttime Skript, das beim ersten Systemstart ausgeführt wird den, mit dem der Dienst ausgeführt wird. Da- /etc/rc.local Lokales Skript zur Anpassung des Systemstarts bei muss durch den zu konfigurieren- /etc/rc.securelevel Enthält Befehle, die vor dem Setzen des Sicherheitslevel ausgeführt werden den Dienst ersetzt werden. Als Beispiel soll der /etc/rc.shutdown Skript, das beim Herunterfahren ausgeführt wird Proxy-Server squid als Benutzer squid ausge- /fastboot Wenn diese Datei existiert, wird keine Festplattenüberprüfung beim Neustart ausgeführt führt werden. Dafür muss als Konfigurationsvaria- ble squid_user=squid verwendet werden. Die beiden Hauptskripts /etc/rc, Mit der Option -d (Debug) werden Fehlermeldun- /etc/rc.local und die Konfigurationsdateien gen beim Start ausgegeben. Ein Dienst wird bei dem Systemstart automa- /etc/rc.conf, /etc/rc.conf.local wurden tisch ausgeführt, wenn der Name des Diens- um das Verzeichnis /etc/rc.d und die Datei In der Datei /etc/rc.d/rc.subr ist ein Frame- tes (identisch mit dem Skript) in der Variable /etc/rc.d/rc.subr ergänzt. Unterhalb von work implementiert, das die Arbeit der Port- pkg_scripts in der Datei /etc/rc.conf.local

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 12 LINUXALLGEMEIN hinterlegt wird. Mehrere Dienste werden mit ei- zwingend notwendig, eine Migration zu den rc.d- [10] http://www.netbsd.org/docs/guide/en/chap-rc. nem Leerzeichen getrennt und in der angege- Skripten durchzuführen. Die vorhandene Kon- html benen Reihenfolge gestartet. Folgendes Beispiel figuration in der Datei /etc/rc.conf.local [11] http://www.freebsd.org/cgi/man.cgi?query= startet den Proxy-Server squid und anschließend bleibt weiterhin funktionstüchtig. rc&sektion=8 den IMAP/POP3-Server Dovecot: [12] http://www.openbsd.org/faq/faq15.html LINKS [13] http://marc.info/?l=openbsd-cvs&m=12881 # Datei /etc/rc.conf.local 2667316247&w=2 pkg_scripts="squid dovecot" [1] http://www.gnu.org/software/grub/ [2] http://www.openbsd.org/cgi-bin/man.cgi?query= Die Dienste werden beim Herunterfahren in boot Autoreninformation der umgekehrten Reihenfolge vom Skript [3] http://de.wikipedia.org/wiki/Initrd /etc/rc.shutdown beendet. [4] http://www.openbsd.org/cgi-bin/man.cgi?query= Patrick Hemmen benutzt seit über Dienste aus OpenBSD Base werden weiter- authpf fünf Jahren OpenBSD und schätzt die hin über dedizierte Konfigurationsvariablen in [5] http://freedesktop.org/wiki/Software/systemd kontinuierliche Entwicklung und gute /etc/rc.conf.local konfiguriert; ein Eintrag in [6] http://download.oracle.com/docs/cd/E19963-01/ Dokumentation des Projekts. pkg_scripts ist nicht nötig. Der Start erfolgt html/821-1451/hbrunlevels-25516.html aber auch hier mit den Startskripten, welche vom [7] http://developer.apple.com/library/mac/ Skript /etc/rc gesteuert werden. #documentation/Darwin/Reference/ManPages/ man8/launchd.8.html Diesen Artikel kommentieren Upgrade [8] http://www.catb.org/~esr/writings/taoup/html/ Bei der Aktualisierung eines bestehenden Sys- ch10s03.html tems auf OpenBSD 4.9 oder neuer ist es nicht [9] http://www.catb.org/jargon/html/R/rc-file.html

„Designated Drivers“ © by Randall Munroe (CC-BY-NC-2.5), http://xkcd.com/589

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 13 KERNEL

Der Oktober im Kernelrückblick von Mathias Menzer

asis aller Distributionen ist der Linux- der auf dem kernel.org-Git fertiggestellt, nach führen, wodurch Schreibvorgänge zustande ka- Kernel, der fortwährend weiterent- Torvalds Ansicht das herausragendste am -rc9. men, die sich negativ auf die Leistung auswirk- B wickelt wird. Welche Geräte in einem Ebenso unspektakulär war auch 3.1-rc10 [5], das ten. Die neue Umsetzung erzeugt weniger zufäl- halben Jahr unterstützt werden und welche ein paar kleine Änderungen der MIPS-Architektur lige Muster und bezieht auch die Bandbreite der Funktionen neu hinzukommen, erfährt man, und Korrekturen für die Dateisysteme xfs und Anbindung des Datenträgers ein, um festzulegen, wenn man den aktuellen Entwickler-Kernel im btrfs mitbrachte. welche Prozesse beim Schreiben verzögert wer- Auge behält. den sollen, um den Gesamtdurchsatz zu erhö- Linux 3.1 [6] bringt auch wieder neue Funktio- hen. Daneben wurde im Zuge der Umstellung nen mit, von denen die interessantesten hier Linux 3.1 auch noch ein Problem mit der Skalierung auf beleuchtet werden sollen. Dazu gehört sicher- Ende Oktober hatte das lange Leiden ein En- Mehrprozessor-Systemen beseitigt. lich die Integration von OpenRISC [7]. Diese de: Torvalds gab während des Kernel Summits Hardware-Architektur ist unter der GNU-LGPL, in Prag den Linux-Kernel 3.1 frei, doch der Weg Eine Funktion moderner Festplatten um den ihre unter GNU-GPL, frei verfügbar. dahin war diesmal steiniger als sonst. Mit 94 Ta- Durchsatz beim Schreiben zu erhöhen ist das OpenRISC wird von einzelnen Unternehmen be- gen Entwicklungszeit liegt 3.1 nicht nur fast um Zwischenspeichern und gegebenenfalls Umsor- reits in FPGAs [8] und ASICs [9] genutzt. das Eineinhalbfache über seiner Vorgängerver- tieren von Schreibvorgängen in einem internen sion, sondern auch deutlich über dem Durch- Eine Funktion, die sicherlich mit Interes- Pufferspeicher der Platte. Dies kollidiert teilwei- schnitt der letzten drei Jahre. Genau genommen se verfolgt wird, ist NFC [10] (Near-Field- se mit den Funktionen der Dateisysteme, die der wird er hier nur von 2.6.24 getoppt, an dem über Communication), ein System zur drahtlosen Da- Datensicherheit dienen, weshalb die Festplatten hundert Tage gearbeitet wurde. Dabei waren die tenübertragung im Nahbereich. Anwendungsge- eine Anweisung zum sofortigen Schreiben bereit- ausschlaggebenden Probleme diesmal nicht un- biete wären beispielsweise Bezahlverfahren mit- stellen („cache_flush“). Die gängigen Dateisys- bedingt innerhalb des Kernel-Codes zu finden. tels Mobiltelefon, Zugangskontrollsysteme oder teme (xfs, btrfs, Ext4) nutzen diese bereits von der Aufbau einfacher Infoterminals, z. B. in Mu- Haus aus, so nun auch Ext3. Nutzer von Ext3, die Nach dem Einbruch auf der Entwicklungsplatt- seen, die zusätzlich Informationen für die Nut- auf den Kernel 3.1 umsteigen, werden nun gerin- form des Linux-Kernels kernel.org (siehe „Der Au- zer von NFC-fähigen Geräten bereitstellen. Ent- gere Durchsatzraten bemerken, wenn sie nicht gust im Kernelrückblick“, freiesMagazin 09/2011) sprechende Chips sind bereits in verschiedenen die Mount-Option barrier=0 nutzen. standen teilweise für sehr lange Zeit das Git- Smartphones verbaut und es wird erwartet, dass Repositorium und die daran angeschlossene Ein neues Werkzeug zur Überwachung des diese Technik eine weite Verbreitung findet. Weboberfläche GitWeb [1] nicht zur Verfügung, Energiebedarfs des Prozessors ist „cpupower- sodass die Entwicklung für einige Zeit auf „Dynamic writeback throttling“ soll das Schreiben utils“. Es soll Entwicklern bei der Überwachung Github [2] lief. Es wurde dann auch die ach- von im Arbeitsspeicher enthaltenen Daten auf der Schlaf- und Aufwachzyklen von CPUs und te Vorabversion dort veröffentlicht [3], die keine Datenträger verbessern. Die bisherigen Metho- APUs [11] helfen. Da es noch immer Probleme bemerkenswerten Änderungen aufweisen konn- den ließen teilweise mehrere Prozesse gleich- mit Komponenten gibt, die mit dem neuen Sche- te. Linux 3.1-rc9 [4] dagegen wurde bereits wie- zeitig Schreibzugriffe auf den Datenträger aus- ma der Kernel-Versionsnummerierung nicht klar-

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 14 KERNEL kommen, wurde nun „uname26“ eingeführt. An- beiten noch eine Zeit lang andauern werden, bis [13] http://de.wikipedia.org/wiki/Software-RAID# statt mit 3.1 meldet sich der Kernel alternativ als kernel.org wieder wie gewohnt funktioniert. Software-RAID 2.6.41. Der Entwickler, Andi Kleen, bezeichnet [14] http://kernelnewbies.org/Linux_3.1 diese Lösung selbst als „hässlich“, doch manche Auf dem Kernel Summit erläuterte Peter Anvin [15] https://kernel.org den weiteren Fahrplan [16]. So sollen die ver- Software scheitert an 3.x. [16] http://www.golem.de/1110/87321.html schiedenen Dienste auf verschiedene Server ver- [17] https://github.com/sitaramc/gitolite iSCSI ist eine Methode, um virtuelle Datenträger teilt werden und unabhängiger sein. Außerdem über das Netzwerk einzubinden. Die bisher ge- sollen die Server zur umziehen Autoreninformation nutzte Implementierung für iSCSI-Targets, also und künftig von fest angestellten Administrato- die Bereitstellung des Datenträgers, wurde auf ren anstelle von Freiwilligen betreut werden. root- Mathias Menzer (Webseite) hält ein neues Modul umgestellt (linux-iSCSI.or [12]), Zugänge zu den Servern bleiben den Administra- einen Blick auf die Entwicklung des das unter anderem mit mehreren Verbindungen toren vorbehalten. Zugriff auf das Kernel-Git wird Linux-Kernels und erfährt frühzeitig pro Sitzung zurechtkommt und auch die Feh- künftig nur noch mittels Gitolite [17] möglich sein, Details über interessante Funktionen. lersuche vereinfachen soll. Das MD-Subsystem, nicht mehr über Git selbst, wodurch sich Anvin mittels dem Software-Raids [13] genutzt werden mehr Sicherheit verspricht. können, kann nun defekte Blöcke auf den Da- Diesen Artikel kommentieren tenträgern feststellen und vermeidet deren Nut- LINKS zung. Zuletzt ein Schmankerl für die Spieler in [1] https://git.kernel.org/?p=linux/kernel/git/torvalds/ der Linux-Gemeinde: Seit 3.1 findet sich nun linux.git auch Unterstützung für Nintendos Wii Controller [2] https://github.com im Kernel. [3] https://lkml.org/lkml/2011/9/27/532 Eine vollständige Liste der Neuerungen findet [4] https://lkml.org/lkml/2011/10/4/451 sich auf Kernelnewbies.org [14]. [5] https://lkml.org/lkml/2011/10/18/2 [6] https://lkml.org/lkml/2011/10/24/212 kernel.org [7] http://en.wikipedia.org/wiki/OpenRISC Auch im Oktober waren der Einbruch auf ker- [8] http://de.wikipedia.org/wiki/Field_Programmable_ nel.org oder vielmehr dessen Folgen ein Thema. Gate_Array Noch immer stehen nicht alle Werkzeuge zur Ver- [9] http://de.wikipedia.org/wiki/Anwendungsspezifische_ fügung, die man bislang gewohnt war. So ist zum integrierte_Schaltung Beispiel die Einstiegsseite [15] zwar wieder ab- [10] http://de.wikipedia.org/wiki/Near_Field_ rufbar, zeigt jedoch noch immer nicht die jeweils Communication aktuellen Versionen an (bei Redaktionsschluss [11] http://de.wikipedia.org/wiki/Accelerated_ „Pirate Bay“ © by Randall Munroe wurde Linux 3.0.4 als aktueller Kernel angege- Processing_Unit (CC-BY-NC-2.5), http://xkcd.com/553 ben). Es bleibt auch zu vermuten, dass die Ar- [12] http://linux-iscsi.org/wiki/ISCSI

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 15 PROGRAMMIERUNG

Perl-Tutorium: Teil 3 – Hashes, Schleifen und Subroutinen von Herbert Breunung

it diesem Teil nähert sich dieses Tuto- Wenn auch die beiden neuen Spezialvariablen ist und tut, was es soll. In soliden Projekten prüft rium weiter dem realistischen Alltag und Module in ihren Bedeutungen klar sind, kann dies eine Testsuite, die immer mit dem Programm M eines Programmierers. Das bedeutet: ohne einen Blick zur vorigen Folge der aktuelle mitwachsen sollte. Da aber das dafür notwendi- noch weniger neue Syntax zu lernen, aber da- Stand des Programmes betrachtet werden (sie- ge Wissen noch nicht vorgestellt wurde, wird ei- für noch mehr Vorüberlegungen zur Struktur he unten links). ne spätere Folge zeigen, welche Werkzeuge Perl des Programmes und seiner Daten. Auch wird dafür bereithält und wie man sie benutzt. Das Programm wechselt das Arbeitsverzeichnis das Notizprogramm nur um die in der Haus- zum Standort des Skriptes. Falls dort eine Datei aufgabe angeforderten Funktionen wachsen, Die nächste Frage, die der erfahrene Program- notizblock.txt liegt, wird sie eingelesen und denn es gibt viel zu erläutern. mierer sich stellt, ist: „Reicht meine Datenstruk- ausgegeben, wobei alle Zeilen hübsch numme- tur, um die geplante Funktion zu unterstützen?” Doch zuvor noch eine Auffrischung der Ope- riert sind. Die dann einzugebende Notiz wird in Sie tut es, da die Notizen nicht mehr wie anfangs ratoren und Befehle der letzten Folge aus die Datei hinter das bisherige Ende gespeichert. in einem Skalar, sondern in einer Liste sind, aus freiesMagazin 09/2011: Wurde nur Enter gedrückt, bleibt es bei der rei- der sich Elemente entfernen lassen. Die zwin- nen Anzeige. gend folgende Frage: „Muss der Programmab- -e '' "" ´ ´ \ qw() { } ( ) < <= > >= lauf geändert werden?” weist den Weg zur Tas- == != lt le gt ge eq ne . seek tell die Einige Vorbetrachtungen tatur, wo Arbeit lauert. Denn jetzt wird im Falle not do if unless for $/ $_ Der erste Gedanke sollte der Entscheidung einer Löschung die gesamte Datei neu geschrie- dienen, welche der zwei use v5.12; ben. Nur wenn eine neue Notiz kam, darf jetzt use warnings; neuen Funktionen zuerst append_file verwendet werden. Die letzte Zei- use FindBin; implementiert (program- le wird also ausgetauscht: use File::Slurp; miert) wird. Die Antwort darauf ist eindeutig das if ($notiz eq "\n") { my $datei = 'notizblock.txt'; Löschen. Es ist das drän- } chdir $FindBin::Bin; gendere Problem. Aber elsif ( ... ) { auch, weil es einfacher append_file($datei, $notiz) if (-e $datei) { zu lösen ist, bekommt es } my @notizen = read_file( $datei ); den Vorrang. Gerade grö- elsif ( ... ) { print "[$_] ", $notizen[ $_ ] for 0 .. $#notizen; ßere Änderungen sollten ... } in mehrere kleinere ge- write_file($datei, @notizen); print "Neue Notiz (nur Enter wenn keine): "; teilt werden, um sicher } my $notiz = ; zu stellen, dass das Pro- else { append_file($datei, $notiz) if $notiz ne "\n"; gramm nach jedem Wan- say "Dokumentation: ..."; } Listing 1: notiz.pl del immer noch lauffähig

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 16 PROGRAMMIERUNG

Alternativen mit elsif und else Die Anzahl der ausgeschnittenen Zeichen kann Doch zurück zum Löschbefehl. substr($notiz, Hinter dem Block jedes if kann eine weitere Be- man an dritter Stelle angeben, muss man aber 1) liefert den Teilstring nach dem Kurzkomman- dingung angehängt werden, welche geprüft wird, nicht. Manchmal will man das Extrakt ersetzen do. Wenn der Nutzer hier Buchstaben eingibt, sollte die if-Bedingung negativ ausfallen. Die- (wenn der String in einer Variable steht). Dann können die folgenden Programmzeilen, die ei- se wird mit elsif eingeleitet und funktioniert an- stellt man den Ersatz an die vierte Stelle. Das ne Nummer erwarten, entgleisen. Deshalb gibt sonsten wie ein if. Dem können beliebig viele Ergebnis von substr ist aber immer das Aus- es int, um beliebige Daten in ganze Zahlen elsif-Klauseln folgen, aber nur der Block nach geschnittene. Man beachte, dass die Parameter umzuwandeln. (Ganze Zahlen werden in fast der ersten positiven wird ausgeführt. Konnte kei- nach Wichtigkeit sortiert sind, sodass man nie allen Programmiersprachen „integer” genannt.) ne Bedingung erfüllt werden, wird der letzte Block mehr als nötig schreiben muss. Das ist eine wich- Was dabei genau geschieht, wurde im vorigen nach einem else ausgeführt, falls vorhanden. tige Lektion für spätere eigene Funktionen. Re- Teil (Abschnitt „Kontext”) beschrieben. Das ver- Er böte sich in diesem Beispiel dafür an, eine sultat der langen Rede – der gesuchte Vergleich hindert Programmabstürze, wäre aber vielleicht umfangreiche Hilfe auszugeben, wenn die Nut- ist: kein ideales Verhalten, da wahrscheinlich der Nutzer nur vergaß, das Leerzeichen einzu- zereingabe nicht den Regeln entsprach. elsif (lc substr($notiz, 0, 1) eq 'd'){ geben, und bekommt stattdessen die erste Textauszüge mit substr Das vorangestellte lc wandelt den Ausschnitt in Nachricht gelöscht. Doch zuvor sollten alle Platzhalter (Punkte) ge- Kleinbuchstaben um (englisch „lower case”, kurz Manchmal kann die laxe Typisierung von Perl ein gen Code ausgetauscht werden. Die erste Klau- „lc”), damit ein D2 statt d2 das Programm nicht echter Hemmschuh sein. Aber es gibt Wege, da- sel besagt: „Enthält die Notiz nur ein Zeilenende durcheinander bringt, sondern die beabsichtigte mit umzugehen, spätere Teile berichten davon. (es wurde Enter gedrückt), dann tu nichts.” Des- Wirkung hat. Fehlertoleranz ist ein weiterer wich- Ein zusätzliches int schneidet also wie oben er- halb bleibt der Platz zwischen den geschweiften tiger Schritt, dem Nutzer entgegenzukommen. wähnt vielleicht vorhandene Nachkommastellen Klammern leer. In der dritten Klausel geht es um Die besten Programme nützen nichts, wenn sie ab. Es gibt ja auch keine 4,5-te Notiz, die ge- das Löschen. Aber wie genau fragt man nach umständlich zu bedienen sind. Manch einer wä- löscht werden könnte. dem Wert des ersten Zeichens der Eingabe, das re vielleicht auf die Idee gekommen, zuerst abzu- splice ein d (für delete) sein soll? Um die zweite No- und mehr fragen, ob man ein Kommando oder eine Notiz Wie angekündigt, ist der Befehl, um das Ar- tiz zu löschen, braucht es somit ein d2. Nur ver- einzutippen wünscht, aber wozu so umständlich? ray aufzuteilen, splice. Und das Allerbeste: Er gleicht eq immer die vollständige Zeichenkette. Sicher, auch die Notiz kann mit einem D anfan- braucht kaum erläutert zu werden, denn er ver- Es braucht einen Befehl, der sich einen Teil ei- gen, aber wenn sie mit einem Leerzeichen begin- hält sich fast wie substr. Die Parameter sind Ar- nes Strings d2 herausgreift, der dann via eq mit nen muss, lassen sie sich gut von den Befehlen ray, Position, Länge, Ersatz, wobei hier auch wie- d verglichen werden kann. Dieser heißt sinniger- unterscheiden und die Zeilen sind bereits in der der die letzten beiden wahlfrei sind und Ersatz weise substr, kurz für „substring”, zu Deutsch Übersicht etwas eingerückt: die Liste aller restlichen Parameter umfasst. Teilstring. Er bekommt mindestens zwei Parame- ter, den String, aus dem geschnitten wird, und elsif (substr($notiz, 0, 1) eq ''){ Um das Programm abzusichern, wird auch die Position, ab welcher es interessant wird. Der append_file($datei, $notiz) geprüft, ob es überhaupt eine Notiz mit der erste Buchstabe hat wie immer die Position 0. } angeforderten Nummer gibt:

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 17 PROGRAMMIERUNG

my $nr = int substr($notiz, 1); Weckruf für das Aufräumkommando. Ab Version se Logik ist das Gegenteil von dem aus C, splice(@notizen, $nr, 1) 5.10 gibt es auch im Perl-Kern endlich einen oder Python bekannten, was eine Menge über- if $nr >= 0 and case-Befehl, nur wenige Jahrzehnte nach sei- flüssiger break einspart – lediglich Ruby hand- $nr <= $#notizen; ner Einführung in C. (Bis dahin half das heute habt das ähnlich. write_file($datei, @notizen); veraltete Switch-Modul aus.) Allerdings ist das default entspricht hier dem else. Es ist die Perl-case wesentlich mächtiger, weswegen es Klausel für den Fall, wenn kein when Erfolg hat- Mit diesen Zeilen, an der rechten Stelle einge- den Namen given/when bekam, um Verwechs- te. Da das im vorigen Teil vorgestellte for eben- fügt, wäre das erste Ziel erfüllt. Zu splice ließe lungen zu vermeiden. Seine umfangreichen Mög- falls $_ setzt, kann when auch in einer for- sich noch anmerken, dass es selten verwendet lichkeiten wären Stoff genug für einen eigenen Schleife verwendet werden. Im jetzigen Fall ma- wird. Für die meisten Anwendungsfälle gibt es Teil, weshalb hier nur das jetzt gebrauchte, grund- chen given und when das Programm vor allem spezialisierte Befehle wie push, das dem Array legende Prinzip erklärt wird. weitere Werte anhängt, und pop, das sie von dort lesbarer. length liefert die Länge eines Strings. entnehmen kann. unshift und shift machen given ( lc substr($notiz, 0, 1) ) { Hat der Nutzer vergessen einzugeben, welche Gleiches am Beginn der Arrays. In anderen Spra- when ("\n") { } Notiz er löschen will, wird er so elegant an die when (" ") { chen wie etwa Java gibt es gesonderte Klassen Hilfe weitergereicht. Generell ist es immer bes- append_file($datei, $notiz) für Listen, bei denen man am Ende anfügt und ser, ihm genau zu sagen, wo das Problem liegt, dort auch wieder abschöpft („Stack”, auch „Sta- } when ("d") { aber noch soll das Programm sehr klein bleiben. pel“ genannt). Fügt man am Ende und entnimmt continue vorne, heisst das „Queue” (Warteschlange). split if length($notiz) == 2; Die vierte Klausel ist für das Verschieben der ... Bei Perl verwendet man die Array-Befehle, die Nachrichten. m steht für move, also „bewege”. } man benötigt, und ignoriert die anderen. Das ist Das Format des Befehles soll wie m2:4 sein, when ("m") { ... } effektiv, flexibel und ein Grund, warum Perl mit default { ... } wenn die Nachricht von der zweiten auf die vier- einem Schweizer Offizierstaschenmesser vergli- } te Position verschoben werden soll. Nun stehen chen wird. Bei dem klappt man auch nur auf, also zwei Werte im String, die es herauszuzie- was man gerade braucht. Wie ebenfalls angekün- Der Befehl given setzt nur den Inhalt der Kon- hen gilt. Mit index ließe sich das : suchen, wel- digt, entfernt delete kein Array-Element, son- textvariable $_, wie es eine einfache Zuweisung ches die Zahlen trennt. Mit dieser Information dern setzt seinen Wert auf undef. Die Reihen- auch tun würde. Die when-Klauseln funktionie- braucht es nur noch zweimal substr, aber es folge wird temporär mit reverse umgekehrt. ren wie ein if oder elsif, nur das sie ihren geht auch einfacher. Zum Aufteilen eines Srings Wert (in runden Klammern) mit $_ vergleichen, gibt es split. Es benötigt nur zwei Zeichenket- given, when, default bei Übereinstimmung den folgenden Block aus- ten und teilt die zweite an jedem Vorkommen der Die bisherigen Abfragen verletzten das im führen und danach den gesamten, umschließen- ersten. So liefert es ein Array der Teile, in denen Abschnitt „Guter, trockener Code” ange- den given-Block verlassen. Das Verlassen kann der Teiler nicht enthalten ist. Etwa so: führte DRY-Prinzip. Dreimal in Folge steht break auch jederzeit erzwingen und continue substr($notiz, 1) im Programm, ein klarer lässt zur nächsten when-Klausel springen. Die- @zahlen = split '' , '1 2 3 4 5';

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 18 PROGRAMMIERUNG

Der Rest besteht aus dem Abfangen von Fehler- quellen und zwei verschachtelten splice. Das %Perl = ( when ($kommando{'loesche'}){.... 'Gesang' => 'Michael Barakowski', rechte splice entnimmt das Element dem Array 'Schlagzeug' => 'Bernd Fleckner', Wenn man die Klauseln noch etwas mehr ändert, und das linke fügt es woanders ein: ); kommen sie mit Kommandos von beliebiger Län- when ("m") { # Michael Barakowski ge zurecht und man kann gleichzeitig die Kom- continue if length($notiz) == 2; say $Perl{'Gesang'}; mandos m und mv verwenden: my($von, $zu) = split /:/, # Michael BarakowskiBernd Fleckner substr($notiz, 1); say @Perl{'Gesang', 'Schlagzeug'}; when ($kommando{'bewege'}){ $von = int $von; say %Perl; # Position und Name continue if length($notiz) == $zu = int $zu; length($kommando{'bewege'})+1; continue Für das Notizprogramm wäre es praktisch, die my($von, $zu) = split ':', substr($notiz, if $von < 0 or $von > $#notizen; Namen der Kommandos ändern zu können. length($kommando{'bewege'})); continue Nicht jeder kann oder mag Englisch. Die Meinun- if $zu < 0 or $zu > $#notizen; gen über die intuitiv richtige Benennung geht si- splice(@notizen, $zu, 0, cher weit auseinander. Und dass die Bedienung Neue Aufgabe und Ausblick splice(@notizen, $von, 1)); leicht von den Fingern geht, ist entscheidend. Neben den stark verbesserungswürdigen Hilfe- write_file($datei, @notizen); Deshalb werden die Kommandos definiert und ausgaben ist das nächste Thema die Gruppie- } die Abfrage kann sie sofort richtig vorstellen: rung mehrerer Notizen zu logischen Einheiten. Dazu bedarf es nicht nur einer strukturierten An- Hashes my %kommando = zeige und Erweiterung der Funktionen, sondern ( bewege => 'm', loesche => 'd'); auch verschachtelter Datenstrukturen und Refe- Neben $ und @ ist % das dritte wichtige Sigel ... renzen. für Variablen in Perl. Mit ihm fangen Hashes print "Neue Notiz (Enter, wenn". an, die man sich als zweispaltige Tabellen vor- " keine; $kommando{'loesche'}". Autoreninformation stellen kann. In der linken Spalte stehen Wer- " loescht; $kommando{'bewege'}". te, die Schlüssel genannt werden und eindeutig " bewegt): "; Herbert Breunung (Webseite) ist sein müssen, d. h. kein Schlüssel kann doppelt seit sieben Jahren mit Antworten, vorkommen. In der rechten Spalte steht je Zeile Es ist eine schöne Eigenschaft von Perl, dass Vorträgen, Wiki- und Zeitungsartikeln ein Wert, der sich mit dem passenden Schlüssel man an die Hashwerte innerhalb und außerhalb in der Perlgemeinschaft aktiv. Dies wie mit einem Namen aufrufen lässt. Alle Schlüs- der Anführungszeichen mit der gleichen Syntax begann mit dem von ihm entworfenen sel und Werte sind Skalare, können also belie- gelangt. Wegen dem Sigel versteht der Interpre- Editor Kephra, den er leidenschaftlich bige Daten aufnehmen. Wenn man die Werte ter trotz aller Klammern was gemeint ist. Ein gerne pflegt. von mehreren Schlüsseln auf einmal möchte, än- Escape-Zeichen (\) kann dies auch aufheben. dert sich das Sigel zu @, da ein Array an Werten Natürlich muss auch der given-Block auf die än- kommt. Will man nur einen Wert, steht vorne $. derbaren Kommandos eingestellt werden. Diesen Artikel kommentieren

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 19 PROGRAMMIERUNG

PHP-Programmierung – Teil 2: Kontrollstrukturen von Patrick Eigensatz

m ersten Teil dieser Reihe zur Um hier kurz zu erklären, was PHP macht und schreiben. Texte, also Zeichenketten (auch: PHP-Programmierung (freiesMagazin wie PHP funktioniert: Ein PHP-Skript ist – wie Strings), werden entweder zwischen einfa- I 10/2011 [1]) wurde der Webserver Apa- HTML auch – ein normales, für den Menschen chen oder doppelten Anführungszeichen gesetzt. che aufgesetzt und die HTML-Grundlagen lesbares, Textdokument. Sendet nun ein Brow- Strings können sich natürlich über mehrere Zei- kennengelernt. In diesem Teil werden so ge- ser eine Anfrage, um das Dokument anzuzeigen, len erstrecken. In PHP wird jeder Befehl mit ei- nannte Kontrollstrukturen behandelt, damit wird das Programm php5 auf dem Server aus- nem Semikolon abgeschlossen. man auf bestimmte Eingaben richtig reagie- geführt, das den Quellcode einliest (in der Fach- ren kann. Außerdem wird kurz beschrieben, sprache: parst) und daraus eine statische Web- Der dem Browser zugesandte HTML-Quelltext wie Funktionen in PHP aufgerufen werden site (HTML) erstellt, die dann dem Client gesen- wird vom Webbrowser dann interpretiert und und wie man auf die mit einem Formular über- det wird. dementsprechend angezeigt. Damit ist die Funk- mittelten Daten zugreifen kann. tionsweise von PHP ungefähr erklärt. Fragen Hallo Welt! sind in den Kommentaren zum Artikel gerne ge- Hinweis: Auf den ersten Teil zur PHP- Jedes PHP Skript beginnt mit einem auf. Der Code, eine Diskussion zum fehlenden in- der außerhalb dieser Marken liegt, wird von PHP Variablen in PHP nerhalb des ersten Artikels. Im nun folgenden ignoriert und einfach wie HTML-Code in die sta- Variablen gibt es – wie in der Mathematik – auch Artikel wird der für HTML5 hinzu- tische Webseite hineingeschrieben. Hier ein klei- im Computer. Variablen bestehen aber in den gefügt. Der Doctype bestimmt, welche Version nes Beispiel, das eine „Hallo Welt“-Seite erzeugt: Programmiersprachen meist aus einem oder so- von HTML benutzt wird, sodass der Browser gar mehreren Wörtern, anstatt aus nur einem hörigen Auszeichnungen für Absätze () Variablen werden in PHP durch ein Dollarzeichen sowie mit den passenden Anweisungen, um den ($) vor dem eigentlichen Namen gekennzeichnet. Text nicht wie im ersten Artikel mit dem ver-

Man sollte beachten, dass als Variablennamen alteten -Tag, sondern über

Roter Text

einzufärben.

kein reserviertes Wort [2] verwendet werden darf. Wie jede andere Programmiersprache kann auch Im Gegensatz zu HTML wird PHP ja auf dem '; PHP mit den mathematischen Operatoren Plus, Server ausgeführt, was heißt, dass alle PHP- ?> Minus, Stern und Doppelpunkt umgehen. Außer- Dokumente auf dem Server nach /var/www/ ge- dem existiert wie fast in allen Programmierspra- Listing 1: hallowelt.php speichert werden müssen. Am übersichtlichsten chen auch der Modulooperator (%), der den Rest ist es, für jedes Projekt einen neuen Unterordner Der Befehl echo hat die Aufgabe, Text, bzw. einer Division berechnet. Eine Formel ist so zu anzulegen. HTML-Elemente in die HTML-Seite hineinzu- formulieren, dass die Variable, der das Resultat

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 20 PROGRAMMIERUNG

zugewiesen wird, vorne steht: $a = $b+$c und ne Ausnahme gibt es aber, nämlich dann, wenn Fischer's Fritz fischt frische y nicht $b+$c = $a. der Text zwischen doppelten Anführungszeichen Fische steht. Dann können die Variablen einfach in den Hier ein kleines Beispiel: Text hineingeschrieben werden. Eine gute Übung zu den Zeichenketten und Varia- Zahl2: $var1 = '\'\'\''; // Variable $zahl2 auf denselben y $zahl2"; $var2 = "\"\"" . '"'; // Wert wie $zahl1 setzen ?> echo "$var1$var2$var1\""; $zahl2 = $zahl1; ?> Eine kleine Anmerkung: Aufmerksame Leser // Variable $resultat ausrechnen werden bemerkt haben, dass nur beim „Hallo Lösungen zu der Aufgabe können in den Kom- $resultat = $zahl1 + $zahl2; Welt“-Beispiel eine HTML-Seite erstellt wurde. mentaren zum Artikel abgegeben werden. (Viel- leicht auch ohne, dass man PHP vorher nach der echo $zahl1 . '+' . $zahl2 . '=' . Ab hier geht es nur noch um die Ausgabe des y Lösung fragt. ;)) $resultat . '

'; Skriptes. Es wird hier kein valides HTML erstellt. echo 'Die Variablen hintereinander:y GET-Variablen ' . $zahl1 . $zahl2; Escapen Im Internet begegnet man immer wieder lan- ?> Um Strings auszugeben, empfehle ich allge- http:// mein die Benutzung von einfachen Anführungs- gen Adressen, wie z. B. folgender: Listing 2: addition.php meinebank.com/ebanking/mein_konto.php? zeichen, denn wenn HTML-Tags ausgegeben user=abc&session=447-zC Dieses Skript erzeugt folgende Ausgabe: werden sollen, müsste man alle doppelten Anfüh- . rungszeichen durch einfache ersetzen bzw. die- Wenn man die URL etwas genauer betrachtet: 5+5=10 se escapen. „Escapen” bezeichnet das Voran- stellen eines Backslashs (\). Damit wird dem http:// das HyperTextTransferProtocol Die Variablen hintereinander: 55 PHP-Interpreter mitgeteilt, er solle dieses Zei- meinebank.com die Domain Hier sieht man auch, dass man Variablen sepa- chen nicht als Ende der aktuellen Zeichenkette /ebanking/ der Ordner, in dem sich die Web- rat ausgeben muss, und dass man diese nicht sehen. site befindet einfach in die Strings hinein schreiben kann. ? 1. Trennungszeichen le Werte zusammen und übergibt diese dann echo, das wiederum den ganzen Text ausgibt. Ei- Die Ausgabe: user Name der 1. Variable

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 21 PROGRAMMIERUNG

= Wertzuweisungszeichen $_GET ist das Datenfeld, in dem alle in der URL Hier zwei Dateien, login.html und login.php: definierten Variablen vorhanden sind. Danach abc Wert, der user zugewiesen wird folgt eine eckige Klammer, damit PHP weiß, dass & 2. Trennungszeichen man in das „Hängemappenregister“ $_GET zu- greifen möchte. Vor der schließenden eckigen session Name der 2. Variable

Klammer findet man eine Zeichenkette, die aus-

In der Fachsprache werden solche Arrays „asso- 447-zC Wert, der session zugewiesen wird Benutzername
ziative Arrays“ genannt. Für Leser der Pythonkur-
aufhört, muss man ein Fragezeichen (?) setzen, oder für sonstige Python-Programmierer: In Py- Passwort
bevor man die GET-Variablen definieren kann. thon sind das Dictionaries. Mehr zu den assozia-
sungszeichen (=), dann der Wert. Mehrere sol- Reihe lesen.
che Variablenzuweisungen werden durch ein „lo- reits erstellt wurden, mag man sich vielleicht dar- de übermittelten Werte werden in einem Daten-
an erinnern, dass man beim Parameter method

feld (auch: Array) gespeichert. Arrays muss man im
-Tag zwischen GET und POST wählen sich als eine Art Hängemappenregister vorstel- konnte. Wählt man GET, werden die Werte so len, in dem in jeder Mappe ein anderer Wert ge- übermittelt, wie oben beschrieben. Man sollte be- speichert ist. achten, dass die URL eine bestimmte Maximal- Listing 3: login.html '; telt werden soll, so eignet sich die Methode POST echo 'Eingegebene Daten:
'; echo $_GET['session']; besser. echo 'Benutzername: ' . $_POST['y ?> benutzername']. '
'; POST-Variablen echo 'Passwort: ' . $_POST['y Das obige Skript erzeugt mit dem Aufruf In einigen Fällen ist es nicht erwünscht, dass passwort']. '
'; man die übermittelten Werte in der URL sieht, da ?> index.php?user=Daniel&session=y abcABC diese ja auch mit der URL im Cache gespeichert werden. Wenn man sich über die GET-Variablen Listing 4: login.php dann die Ausgabe irgendwo einloggt, kann ein Unbefugter später die Logindaten aus dem Cache auslesen. Die Der Zugriff zu den übermittelten Daten erfolgt Daniel POST-Variablen werden mit der Anfrage der Sei- hier über $_POST anstatt über $_GET. Auf der Pro- abcABC te mitgesendet, aber nicht in der URL. grammierebene ist sonst alles dasselbe.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 22 PROGRAMMIERUNG

Funktionen aufrufen Kontrollstrukturen if($_POST['name'] == 'Daniel'){ Es gibt viele Funktionen in PHP, die man mit be- Die if-Abfrage echo "Login erfolgreich"; stimmten Parametern aufruft und die verschiede- Kontrollstrukturen sind gewisse Möglichkeiten, } else { ne Rückgabewerte zurückgeben. Parameter wer- die man als Programmierer hat, um den Quellco- echo '

y den zwischen runde Klammern gefasst und mit de dynamisch zu gestalten. Die einfachste Kon- Sorry, falsche Logindaten

'; einem Komma getrennt. Hier ein Beispiel, das strollstruktur ist wohl die WENN-DANN-Struktur: } Großbuchstaben in Kleinbuchstaben umwandelt: WENN hunger DANN { Hier wird zusätzlich else benutzt. Alles inner- terschiedlich. Mit Syntax meint man quasi die Die elseif-Abfrage Grammatik der Programmiersprache. PHP hat Wenn man im else-Anweisungsblock noch eine Ausgabe: große Teile der Syntax der Skriptsprache Perl weitere Bedingung testen will, kann man auch das ist text übernommen. Die Syntax ist sehr simpel, über- elseif benutzen: sichtlich und deshalb effizient. if($_GET['name'] == 'Daniel'){ Sieht man sich die Funktion strtolower() ge- Die Anwendung der if-Abfrage ist sehr sim- echo 'Hallo Daniel'; nauer an (z. B. so, wie sie auf php.net beschrie- pel: Zuerst kommt if, dann die Bedingung, die } elseif($_GET['name'] == 'Peter'){ ben ist [3]), sieht man alle Parameter, die die erfüllt sein muss, zwischen runden Klammern. echo 'Hallo Peter'; Funktion benötigt: Der ganze Anweisungsblock, der ausgeführt wird } elseif($_GET['name'] == 'Max'){ string Rückgabetyp (Zeichenkette) wenn die Bedingung stimmt, steht zwischen ge- echo 'Hallo Max'; } else { strtolower Funktionsname schweiften Klammern. Um Bedingungen umzu- echo 'Sorry, ich kenne dich kehren, kann man das Ausrufezeichen benutzen: y noch nicht!'; string Typ des ersten Parameters (!hunger == 1) oder (hunger != 1). Für die } $str Die Variable, deren Wert der Funk- Bedingungen dürfen auch beliebig viele Klam- mern verwendet werden, die es aber nicht unbe- tion übergeben wird Hier wird zuerst überprüft, ob $_GET[’name’] dingt einfacher machen, den Code zu lesen. $str ist die Zeichenkette, die in Kleinbuchstaben gleich ’Daniel’ ist. Wenn nicht, dann wird umgewandelt wird. Die Rückgabe der Funktion if( !($hunger == 0)) { ... } $_GET[’name’] auf ’Peter’ überprüft. Wenn ist quasi das „Resultat der Funktion“. Eine gute if ( ( !$hunger == 0 )) { ... } $_GET[’name’] weder ’Daniel’ noch ’Peter’ Liste von allen Funktionen die PHP kennt, findet ist, wird noch auf ’Max’ getestet. Wenn die- man in der PHP-Funktionsreferenz [4]. Sämtliche Hier ein kleines Beispiel für ein Log-in mit Benut- ser Test auch fehlschlägt, wird der else- Funktionen sind dort sortiert aufgelistet. zernamen: Anweisungsblock ausgeführt.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 23 PROGRAMMIERUNG

Die while-Schleife $zahl = 1; Die switch-Abfrage Eine wichtige Struktur ist auch die so genann- while($zahl < 10) { Wenn man eine Variable auf bestimmte Wer- te while-Schleife. Sie führt alles innerhalb ei- if($zahl == 6){ te testen will, so kann man anstelle von vie- break; nes Anweisungsblockes solange aus, wie eine len elseif-Abfragen auch eine einzelne switch- } Bedingung erfüllt ist. Wenn die Bedingung nicht Abfrage verwenden. Dabei muss nur noch die Va- mehr erfüllt ist, wird die Schleife verlassen, und echo $zahl . "
"; riable angegeben werden, die auf die verschiede- im Quellcode normal fortgefahren. Zum Beispiel: $zahl = $zahl + 1; nen Werte geprüft werden soll: } while($satt == 0) { 1 switch($_GET['seite']){ iss_weiter(); 2 case 1: Dieses Skript liefert folgende Ausgabe: } 3 echo 'Das ist Seite 1'; 1 4 break; $zahl = 1; 2 5 case 2: while($zahl < 10) { 3 6 echo 'Das ist Seite 2'; echo $zahl . "
"; 4 7 break; $zahl = $zahl + 1; 5 8 default: } 9 echo 'Weder Seite 1 noch y Wenn die Zahl auf 6 erhöht wurde, wird mit break Seite 2'; Dies erzeugt die Ausgabe: die Schleife verlassen. 10 break; 11 } 1 Die for-Schleife 2 Wird, wie in diesem Fall nur hochgezählt, kann switch ist leicht verständlich: In Klammern hin- 3 man auch die for-Schleife verwenden: 4 ter switch wird die Variable übergeben, die 5 for($zahl=1; $zahl < 10; $zahl++) { auf bestimmte Werte geprüft werden soll. Mit 6 echo $zahl . "
"; case wird die angegebene Variable auf einen 7 } bestimmten Fall getestet. Auf der zweiten Zeile 8 auf den Fall $_GET[’seite’] == 1. Der Anwei- 9 In der for-Schleife wird zuerst eine Variable mit sungsblock folgt nach dem Doppelpunkt. Jeder dem Startwert definiert (Init). Dann folgt nach Befehl wird wie gewohnt mit einem Semikolon Beim letzten Durchgang wird $zahl auf 10 er- einem Semikolon (;) der mathematische Ver- abgeschlossen. Der Anweisungsblock wird mit ei- höht. 10 ist nicht mehr kleiner als 10 und deshalb gleich (Bedingung). Am Schluss steht, was pas- nem break beendet. Achtung: Wenn der Anwei- wird die Schleife verlassen, bevor 10 ausgege- siert, nachdem die Schleife einmal durchlaufen sungsblock nicht mit einem break abgeschlos- ben wird. Wenn man eine Schleife manuell unter- ist (Increment-Section). $zahl++ ist dasselbe sen wird, werden alle angegebenen Befehle aus- brechen möchte, weil z. B. ein Fehler aufgetreten wie $zahl = $zahl + 1. $zahl wird also um 1 geführt. Egal, ob die zu den Befehlen angegebe- ist, kann man den Befehl break verwenden: erhöht. nen Bedingungen stimmen oder nicht. Beispiel:

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 24 PROGRAMMIERUNG

Würde man auf Zeile 4 das break weglassen, schied, dass es einen Fehler während des Aus- Zusammenfassung und Ausblick und das Skript mit $_GET[’seite’] = 1 aufru- führens gibt, wenn eine schließende Klammer In diesem Teil wurden sehr wichtige Abschnitte fen, so wäre die Ausgabe: fehlt. Bei switch gibt es keinen Syntaxfehler, es von PHP besprochen. Wie am Anfang der Rei- wird ganz normal fortgefahren. Hier liegt eine ver- he bereits erwähnt, ist es sinnvoll, wenn man die Das ist Seite 1Das ist Seite2 borgene Fehlerquelle. Ich benutze deshalb lieber hier gelesene Theorie ein wenig in die Praxis elseif-Abfragen. umsetzt. Die wichtigsten Kontrollstrukturen sind Auf Zeile 8 wird mit default: quasi das else if-else, while und for. Es ist natürlich von definiert. Alles unter default: wird also aufge- Code-Styling Vorteil, wenn man sich anhand der genannten rufen, wenn keiner der genannten Fälle einge- Referenz noch weitere Konstrollstrukturen aneig- troffen ist. Da default zuletzt in der switch- Ab hier sollte man als Anfänger beginnen, seinen net, wie z. B. foreach. Im nächsten Teil wird Abfrage vorkommt, könnte das break theoretisch Quellcode so übersichtlich wie möglich zu schrei- die Escape-Aufgabe aufgelöst, es wird ein we- weggelassen werden. Es ist hier nur aus Vollstän- ben: nig mehr auf Datenfelder (Arrays) eingegangen digkeitsgründen ausgeschrieben. if(hunger == 1) { und es wird gezeigt, wie man sichere Log-ins mit gehe_essen(); switch Session-Cookies erstellen kann. kann selbstverständlich auch Strings mit- } einander vergleichen. Wenn man das Beispiel LINKS von vorhin mit switch schreibt, sieht das so aus: if(hunger == 1) { gehe_essen(); } [1] http://www.freiesmagazin.de/freiesMagazin-2011- 10 switch($_GET['name']){ if(hunger == 1) [2] http://www.php.net/manual/de/reserved.php case 'Daniel': { echo 'Hallo Daniel'; [3] http://php.net/manual/de/function.strtolower.php gehe_essen(); break; [4] http://php.net/manual/de/funcref.php } case 'Peter': [5] http://pear.php.net/manual/de/standards.php echo 'Hallo Peter'; break; Es gibt viele unterschiedliche Schreibweisen, die case 'Max': sich, je nachdem, wo sie im Quellcode eingefügt Autoreninformation echo 'Hallo Max'; werden, besser eignen als andere. break; Patrick Eigensatz (Webseite) befasst default: Es gibt auch „Code Styling Standards“, die ge- sich seit einigen Jahren mit der echo 'Sorry, ich kenne dichy nau vorschreiben, was im PHP-Quellcode wie Entwicklung von Webanwendungen noch nicht!' ; aussehen muss [5]. Diese Standards existie- und hat dadurch viele Erfahrungen im break; ren, um eine Zusammenarbeit von vielen PHP- Bereich PHP gesammelt. } Programmierern zu erleichtern, damit nicht jeder erst den Code des Anderen lesen lernen muss. break sind also genauso wichtig wie die schlie- Auf dieses Thema wird hier aber nicht weiter ein- ßenden geschweiften Klammern, mit dem Unter- gegangen. Diesen Artikel kommentieren

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 25 DESKTOP

Pixelfreie Screenshots von Joachim Breitner

raphische Programme malen seit man sich nun diese Wünsche erfüllen. Das im Terminal aus; die Ausgabe muss gtk-vector- Jahrzehnten Pixel auf den Bildschirm. GTK-Modul gtk-vector-screenshot vom Autor die- screenshot aufführen. Was dort gut und richtig aussieht, ses Artikels macht es möglich. Vergleicht man G Um nun einen Screenshot aufzunehmen, star- wird, als Screenshot gedruckt, schnell un- die zwei Screenshots der Hallo-Welt-Anwendung tet man das Programm take-vector-screenshot, scharf und pixelig. Bei modernen GTK- aus der GTK-Dokumentation, so kann man im drückt den daraufhin erscheinenden Knopf und Anwendungen gibt es nun mit gtk-vector- zweiten Bild, sofern man diesen Artikel in der wählt das Fenster aus, das man aufnehmen will. screenshot eine Alternative: Screenshots als PDF-Version liest, den Text markieren und rein- Dann öffnet sich ein Datei-Speichern-Dialog, in Vektorgraphik. zoomen, ohne dass die Schrift pixelig wird. dem man neben dem Dateinamen auch das Bild- Screenshots sind allgegenwärtig: Man braucht format festlegen kann. Dabei stehen PDF, SVG, sie, um Programme zu bewerben und zu doku- PS und (etwas witzlos) PNG zur Auswahl. Spei- mentieren, um Fehler zu berichten oder um freie chern – und fertig. Magazine herauszugeben. Dabei werden bisher Da der Webbrowser Epiphany auch GTK+ ein- immer Pixelgraphiken eingesetzt. Diese sind mit PNG-Screenshot der Hallo-Welt-Anwendung. setzt, funktioniert gtk-vector-screenshot auch da- der Bildverarbeitung der Wahl, etwa GIMP, oder mit, und so kann man sogar beliebige Webseiten über die Kommandozeile, etwa mit xwd, einfach als Vektor-Graphiken festhalten. erstellt und geben die Anzeige exakt wieder. Aber alle Wünsche erfüllen sie nicht. In Hello World Unter der Haube Programm-Dokumentationen wäre es schön, Wenn jemandem gtk-vector-screenshot vorge- wenn die Volltextsuche auch die Texte in den PDF-Screenshot der Hallo-Welt-Anwendung. führt wird, so setzt spätestens beim Markieren Screenshots durchsucht, um etwa die Dokumen- der Knopfbeschriftungen oder des Webseiten- tation zu einem bestimmten Dialogfenster zu fin- gtk-vector-screenshot einsetzen Inhalts in der erzeugten PDF-Datei ein erstaun- den. Bei Screenshots von Fehlermeldungen hat tes Raunen ein und an einem verwirrten Stirn- es der Entwickler einfacher, wenn er Teile der An- Wer Debian ab Wheezy, Ubuntu ab Oneiric runzeln sieht man, dass der Zuschauer versucht zeige per Copy’n’Paste extrahieren kann. Und im oder Arch-Linux einsetzt, kann sich gtk-vector- zu verstehen, wie das wohl funktioniert. Natürlich Print-Bereich mit seiner deutlich höheren Auflö- screenshot über die Paketverwaltung installie- kommt dabei nicht, wie man vielleicht zuerst ver- sung wäre es wünschenswert, wenn dem Leser ren; alle anderen seien auf das Quellpaket [1] mutet, eine Texterkennung (OCR) zum Einsatz; auch auf den Bildschirmbildern gestochen schar- verwiesen. Danach sollte man sich neu einlog- auch versucht gtk-vector-screenshot nicht, aus fe Schrift statt großer Pixel geboten wird. gen, damit das Modul in alle laufenden GTK3- den Pixeldaten die originale Linienführung zu re- Anwendungen geladen wird. Um zu prüfen, ob konstruieren. Zumindest für die Anwendungen, die mit dem dies geklappt hat, führt man Toolkit GTK+ implementiert sind und schon auf Alles was für dieses Feature nötig ist, bringt die Version 3 derselben portiert wurden, kann $ echo $GTK_MODULES GTK+ [2] von Haus aus mit. Schon länger

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 26 DESKTOP

Datei Bearbeiten Ansicht Gehe zu Lesezeichen Werkzeuge Reiter Dieses markiert alle Fenster der Anwendung, ne den Fensterrahmen, der vom Fenstermana- um zu signalisieren, dass der Benutzer hiervon ger hinzugefügt wird, und ohne den Mauszei- Vektor-Screenshots machen kann. Mit dem fol- ger. Um den ganzen Desktop aufnehmen zu kön- genden Befehl kann man das überprüfen: nen, müsste man jedes Fenster für sich aufneh- Suchen men und die Dateien dann entsprechend zusam- $ xprop GTK_VECTOR_SCREENSHOT Magazin Archiv Extras Kontakt Mitmachen Impressum mensetzen. Wer hier oder auch anderweitig gtk-

Wortwolke vector-screenshot verbessern will, ist herzlich Das kleine Programm take-vector-screenshot h über Wissenswertes und Neues aus Buch Community Desktop Grafik eingeladen, sich auf Gitorious [6] den aktuellen lässt den Benutzer nun ein Fenster wählen und n Source und Linux. Was 2005 als Hardware Internet Kernel Konsole Code zu besorgen und loszubasteln. it der Zeit durch Akzeptanz und schickt über das X-Protokoll an dieses eine zum regelmäßig erscheinenden Linux allgemein Multimedia Community etwas an Wissen, Spaß XClientMessage, auf die das Modul reagiert, den LINKS Programmierung Datei-Speichern-Dialog anzeigt und das Fenster Webseite von freiesMagazin in Epiphany . in die entsprechende Datei zeichnet. [1] http://www.joachim-breitner.de/projects#gtk- vector-screenshot werden die Widgets, also die Bildelemente wie Einschränkungen Knöpfe und Menüs, mit der Graphik-Bibliothek [2] http://www.gtk.org/ Cairo [3] gezeichnet. Diese unterstützt Pixelfor- Wie bereits erwähnt, funktioniert gtk-vector- [3] http://cairographics.org/ mate wie PNG-Dateien oder eben die Bildschirm- screenshot nur mit Anwendungen, die auf [4] https://bugzilla.gnome.org/365121 ausgabe ebenso wie die Ausgabe von Vektor- GTK+ 3 aufbauen. Auch dann ist nicht garantiert, [5] https://bugs.freedesktop.org/38516 Graphik. Während früher in GTK+ jedes Widget dass es perfekt funktioniert: Manche Programme [6] https://gitorious.org/gtk-vector-screenshot für sich Cairo aufgerufen hat und dann die Pixel- zeichnen Teile des Bildschirms nicht mit Cairo, Daten kombiniert wurden, wird seit GTK+ 3 das diese sind dann im Screenshot nicht zu sehen. ganze Fenster in einem Rutsch erzeugt. Prominentestes Beispiel ist leider das GNOME- Terminal – aber dort zeichnet sich eine ande- Autoreninformation Hier setzt gtk-vector-screenshot an: Statt dem re Lösung ab: Im GNOME Bugtracker [4] war- Joachim Breitner (Webseite) stu- Fenster-Widget zu sagen, es solle sich auf den tet ein Patch, der es ermöglichen wird, den In- dierte in Karlsruhe Mathematik und Bildschirm malen, wird ihm ein anderer Cairo- halt des Terminals einschließlich der Formatie- Informatik und arbeitet jetzt am Kontext übergeben, der eine PDF-Datei erzeugt. rung als HTML-Code zu kopieren. Karlsruher Institut für Technologie. Für das Benutzerinterface ist noch ein Trick nö- Wählt man als Ausgabeformat SVG, so ist der gtk-vector-screenshot ist eine Aus- tig. Die Screenshots müssen innerhalb der jewei- Bildschirmtext als solcher nicht enthalten, man nahme von der Regel, dass der ligen Anwendung erstellt werden, auch wenn es kann ihn also nicht finden oder markieren. Das ist Debian-Entwickler vor allem in Has- so aussehen soll, als ob dies mit einem spezi- ein Problem in Cairo, das gerade gelöst wird [5]. kell programmiert. ellen Programm take-vector-screenshot gemacht wird. Dazu wird von jedem GTK-Programm das Auch kann gtk-vector-screenshot stets nur den gtk-vector-screenshot-Modul beim Start geladen. Inhalt genau eines Fensters aufzeichnen, oh- Diesen Artikel kommentieren

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 27 SPIELE

Ren’Py als Entwicklertool für 2-D-Spiele von Arne Weißendorn

extadventures waren lange Zeit auch es erhältlich. Daneben kann man sich die aktu- en Augen erscheint, stellt sich kurz vor und de- in Deutschland sehr populär. Ihre elle Version von der Webseite von Ren’Py [3] monstriert die Erstellung von Dialogen, Anima- T Hochzeit hatten sie vielleicht in den herunterladen. Die mit Ren’Py erzeugten Pro- tionen oder Entscheidungswegen. Aus seinen 80er/90er Jahren, doch mit der Neuartig- gramme lassen sich im Anschluss allgemein Ausführungen wird schnell klar, dass Ren’Py- keit der 3-D-Shooter verschwanden sie bei- für Linux, aber auch plattformübergreifend für Programme in einem Texteditor entwickelt wer- nahe ganz. Hierzulande! In Japan mach- Windows und MacOS ausführbar machen. Wäh- den und dass das Ergebnis schnell anspre- te Mitte des letzten Jahrzehnts eine eige- rend die Originalversion aktuelle Dokumentation chend wirken kann. Wer beim Stichwort „Textedi- ne Art von Textadventures ca. 70 % des und ein grundlegendes Beispiel enthalten, soll- tor“ nun an die Bearbeitung von Konfigurations- Spielemarktes aus [1]. Open-Source-Projekte ten bei Paketinstallation wenigstens die Pakete dateien und Programmskripte denkt, hat natür- wie ScummVM bedienen weiterhin die Lust renpy-demo und renpy-doc mitinstalliert wer- lich nicht ganz Unrecht. Tatsächlich benötigt ein an Retro-Spielen unter Linux – und da- den. Gestartet wird Ren’Py entweder über das Ren’Py-Programm nicht viel mehr als ein Autor mit auf einer Plattform, wo die Abhängig- Startmenü – oder indem man im entpackten Ord- für einen Roman oder ein Theaterstück braucht, keit von den neuesten und teuersten Gra- ner die ausführbare Datei renpy.sh startet. Die um Dialoge zu schreiben. Eine Geschichte/ein fikkarten und ihren Treibern gelegentlich ei- ebenfalls im Ordner enthaltenen .exe-Dateien Text wird im Editor aufgeschrieben und in An- ne Qual ist. Bei Ren’Py [2] handelt es sich und der renpy.app-Ordner sollten nicht gelöscht führungszeichen gesetzt. Für die Darstellung von nun um ein plattformübergreifendes Open- werden, da diese Dateien nach Fertigstellung Bildern nutzt man vereinfachte Befehle (sprich: Source-Software-Entwicklungskit (SDK), das des eigenen Programms für die plattformüber- „Regienanweisungen“). Wie diese genau ausse- seine Ursprünge in der Bewunderung für die- greifende Nutzung unerlässlich sind. Das Ver- hen, erfährt man im erwähnten Tutorial oder in se japanischen Spiele hat. zeichnis für Ren’py-Projekte lässt sich im Laun- cher festlegen. Die erzeugten Spiele beinhalten Dieser Artikel wird zeigen, ob und in welcher Wei- in der Regel ein komplettes Ren’Py in der jeweili- se Ren’Py die Erstellung von Software erleich- gen Version, mit der das Spiel erstellt wurde, so- tert, welche Rolle das „Py” für „Python” im Na- dass eine Trennung von Spiel und Programmda- men besitzt und stellt die Entwicklungsanwen- ten bei fertigen Spielen nur in Einzelfällen gelingt. dung einführend mit einigem Anschauungsmate- rial (mit Ren’Py entwickelte Spiele) vor. Der erste Start Beim Start von Ren’Py zeigt sich zunächst nur Installation ein kleines Fenster, welches auf den ersten Blick Ren’Py ist als Paket in den Debian- und Ubuntu- nicht gerade überfordert. Um zu sehen, was mit Quellen seit einiger Zeit vorhanden. (Zum Bei- diesem Programm möglich ist, lohnt es sich, als spiel als renpy im Universe Repository von erstes über das Menü das Tutorial zu starten. Ubuntu). Auch für Gentoo und Arch Linux ist Ein rothaariges Mangamädchen mit großen blau- Screenshot zum späteren Skript.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 28 SPIELE einem der mit der Dokumentation mitgelieferten Mit Ren’Py wird dieses Skript zu einem kom- mysteriös-romantische Open-Source-Adventure Einführungen, die im Webbrowser betrachtet wer- pletten und ausführbaren Programm inklusi- Moonlight Walks 2.0 [4] vom Autor von Ren’Py, den können. ve speicherbarem Spielstand, Toneinstellungs- PyTom, das nicht viele Elemente nutzt. In ei- möglichkeiten etc., sodass einfache Dialoge nem solchen Spiel steht die Geschichte im Vor- Das erste Skript bereits ausreichen, um ein ganzes, mehrere dergrund – nicht die Grafikkarte oder die Neu- Ein bereits vollständiges Programmskript mit Spielstunden langes Spiel mit unterschiedlichen heit des Computers. Textadventures dieser Art Grafik und Entscheidungsmenü sieht wie folgt Erlebniswegen zu ermöglichen. Ein Beispiel, sind daher auch deutlich näher am Bucherlebnis. aus: wenn auch kein Abend füllendes, ist z. B. das Kommen mehr Grafiken hinzu, ähnelt es mehr ei- nem Comic, bei vielen Animationssequenzen ei- #Charakterbild: nem Animationsfilm. Das Genre „Visual Novel” image Eileen lächelnd = "eileen_laechelnd.jpg" nutzt vor allem Hintergrundbilder und Charakter- #Name des Charakters: grafiken zu Text. Dies ist die Standarddarstellung define Eileen = Character('Eileen', color="#c8f") von Ren’Py, welches sich mit ein wenig Aufwand auch anders nutzen lässt. label start: #Hintergrund schwarz Frage an den Entwickler scene black "Schon reine Sätze in Anführungszeichen reichen aus, um mit Ren'Py y Ich wollte vom fast alleinigen Entwickler von eine komplettes Spiel zu erstellen." Ren’Py gern erfahren, wie er darauf gekommen ist, Ren’Py zu entwickeln und seine Arbeit als #show lässt ein Bild erscheinen Open Source zur Verfügung zu stellen. show Eileen lächelnd PyTom, als Autor und Entwickler von Eileen "Hallo Leser!" Ren’Py, was war die ursprüngliche Motivation Eileen "Würdest du gerne mehr von wissen?" Ren’Py zu entwickeln? menu: "Ja, gerne": Als ich die ersten Visual Novels entdeckte, war jump mehr_wissen ich begeistert. Zum einen waren das zu der Zeit die frühen Visual Novels, die vom Japanischen "Ein andermal": ins Englische übersetzt wurden – und zum ande- jump ende ren die wenigen ersten englischsprachigen Pro- label mehr_wissen: jekte – wie „Tales of Lemma”. Ich bekam den #[...] Wunsch etwas beizutragen. Allerdings bin ich kein Übersetzer. Ich bin auch kein großer Künst- label ende: ler oder Autor, doch denke ich, dass ich ein ganz #ENDE passabler Programmierer bin. Deshalb habe ich

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 29 SPIELE eine Engine entwickelt, die den Leuten ermögli- hängig von der aktuellen Position des Charakter- Zunächst ähneln sie den hierzulande bekannten chen sollte, selbst Spiele zu machen, ohne viel bildes „Eileen“. Auch Kameraschwenks oder Ani- Textadventures, die darüber hinaus mehr oder zu programmieren. Anstatt eines Teams, in dem mationen, die beispielsweise während eines Dia- weniger spezifische Eigenschaften besitzen, die man sowohl einen Autor für die Geschichte, als loges im Hintergrund ablaufen, lassen sich mit sich stilbildend in Japan entwickelt haben. Die auch einen Grafiker plus Programmierer benötigt, Hilfe dieser Syntax erzeugen. Machart, die auch Ren’Py standardmäßig unter- sollte es mit meinem Programm ausreichen, sich stützt, bietet in der einfachsten Variante Platz für auf die Schreib- und Grafikbeiträge zu konzen- Ren’Py sorgt standardmäßig für ein nutzbares Text auf dem Bildschirm, mit dem sich Inhalte dar- trieren. Als die Leute das Programm annahmen Grundgerüst für den Endanwender und dafür, stellen lassen. Oft in etwas stärkerem Maß als und nutzten, habe ich dann mehr und mehr Zeit dass der Macher eines Programms schnell se- beispielsweise bei den alten LucasArts-Spielen. in das Projekt investiert. hen kann was sich tut. Das angestrebte Ziel, Pro- In der Regel werden solche Texte von Hinter- grammierung im Idealfall für Nichtprogrammie- grundbildern und Charaktergrafiken unterstützt. Python und die Ren’Py-Syntax rer zu ermöglichen, stellt kein Hemmnis für Pro- grammierwillige dar, die ihre Python-Kenntnisse Ein Untergenre von Visual Novles sind „ki- Von Python übernommen wurde bei der Erstel- testen und erweitern wollen. Wer sich komple- netic visual novels”. „Kinetisch“ drückt in die- lung von Skripten die strikte Behandlung des xere Aufgaben sucht als reine Texte, die sich sem Zusammenhang aus, dass die Geschich- Einrückens, die Überblick und Lesbarkeit ver- über Menüs verzweigen, wer beispielsweise ei- te keine Verzweigungswege kennt, sondern es bessert. Doch Kenntnis der Programmierspra- ne Wirtschaftssimulation plant oder ein Rollen- sich um eine reine bebilderte bzw. animierte che Python ist nicht notwendig. Zumindest ein- spiel mit ausgeklügelter GUI, kann jederzeit auf (Kurz-)Geschichte handelt, die für den Bildschirm fache Aufgaben lassen sich vollständig mit an- Python zurückgreifen und dabei das Grundgerüst erstellt wurde. Ren’Py ist allerdings trotz des Un- schaulichen und leicht verständlichen Anweisun- und die Erleichterungen durch die Skriptsprache tertitels nicht an das Genre „Visual Novel” gebun- gen lösen, bei denen es egal ist, dass sie in- nutzen. PyGame speziell wird auch intern von den, auch wenn viele Ren’Py-Geschichten den tern mit Python umgesetzt werden. Es existiert Ren’Py genutzt – beispielsweise für die Darstel- ursprünglich japanischen Stil nutzen. jeweils die Möglichkeit, eine Aufgabe alternativ lung von Sound und Videos. auch in Python-Code anzugeben, was für die Ein- Ren’ai und Altersempfehlungen bindung in Python-Bestandteile eines eigenen Was sind Visual Novels? „Ren’ai” ist ein japanischer Begriff für romanti- Programms interessant sein kann. Ren’Py bie- Ren’Py besitzt die Programmbeschreibung sche Spiele. Ren’ai-Spiele machen einen Groß- tet neben der Vereinfachung der Textdialoge u. a. „Ren’Py visual novel engine”. Daher sind ne- teil des japanischen Spielemarkts aus. Ein in die eigene Animationssprache „ATL” (Animation ben „Python” zwei Begriffe mit dem Programm manchem deckungsgleicher Begriff lautet „Da- and Transformation Language), die Grafikdarstel- verbunden: „Visual Novel” und „Ren’ai”. ting Sim“. Bei diesen Spielen ist es zumeist das lung vereinfacht und das Skript auch lesbarer Ziel, die Geschichte eines bestimmten Spielcha- macht. Ein Beispiel ist, dass man einem Cha- Visual Novel . . . rakters genauer zu erforschen und mit diesem rakterbild einen Namen und ein Attribut geben . . . (in etwa: „visueller Roman”) ist ein englischer Abenteuer oder romantische Situationen zu er- kann. Die Anweisung show Eileen lächelnd Begriff für ein Genre, das sich in Japan entwickelt spielen. In „Ren’Py“ ist „Ren’ai” als Namensbe- stellt ein Bild dar, dass ersetzt werden kann hat. Viele Visual Novels nutzen den japanischen standteil enthalten und Ren’ai-Spiele waren die durch show Eileen fragend – und zwar unab- Anime-/Manga-Stil oder spielen sogar in Japan. Anfangsmotivation für die Erstellung des SDKs.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 30 SPIELE

Das Thema Liebe und Romantik wird in Spie- weiter vereinfachte Übersetzungsmöglichkeit der- Ren’Py umgesetzt wurden. Akt 1 handelt von len und Geschichten sehr unterschiedlich inter- zeit Thema und wird für die kommende Version den Erlebnissen eines japanischen Jungen, der pretiert. Nicht alle Spiele, die im Manga-Stil er- 6.14 anvisiert. Dies erhöht die Hoffnung, dass ein lebensbedrohliches Herzversagen erleidet stellt wurden, sind beispielsweise für Kinder ge- weitere mehrsprachige und auch deutschsprachi- und seine Ankunft in einem speziellen Internat, eignet (wie man unwissend im deutschsprachi- ge Programme entstehen werden. Hier nun zwei wo es seine Aufgabe ist, mit der neuen Situation gen Bereich meinen könnte, wenn man an be- herausgepickte, deutschsprachige Vertreter. klar zu kommen, Hoffnung und vor allem neue rühmte Animeserien aus dem deutschen Kinder- Freunde zu finden. Die Menschen um ihn herum programm denkt, wie beispielsweise Biene Maja). Das erste deutschsprachige Spiel dieses Genres, haben jedoch ihre eigenen Eigenarten. Katawa Bevor man Spiele für Kinder lädt, sollte man das 2007 mit Ren’Py erstellt wurde, war mit „Fe- Shoujo Akt 1 verdient durchaus eine längere Kri- – mal vom Sprachproblem abgesehen – daher lix, Gaijin [5]” die Geschichte eines deutschen tik – grob gesagt eignet sich dieser erste Teil nach Altersempfehlungen Ausschau halten. Alle Austausch-Studenten in Japan. Felix muss sich jedoch trotz seines speziellen Themas vielleicht auf renpy.org aufgeführten Spiele besitzen Alters- im Land mit der japanischen Kultur auseinander- auch als ein gutes Beispiel für Visual Novels im empfehlungen. Während viele erhältlichen Spie- setzen und lernt andere Studenten und Studen- japanischen Stil. Der zweite Teil ist noch nicht er- le altersübergreifend sind, gibt es spezielle Spie- tinnen kennen. Die Grafiken stammen aus bear- schienen, wird kommerziell sein und eine andere le für Kinder, viele für Jugendliche und Jung- beiteten Fotos und gerenderten Bildern, nähere Altersempfehlung erhalten. Der erste Teil ist fast Erwachsene – bis hin zu Geschichten, die eher Zielgruppe dürfte neben in der menschlichen Lebensmitte spielen. Emp- Ren’Py-Interessierten vor al- fehlungen der Autoren richten sich in der Regel lem Japan-Interessierte sein nach Empfehlungen wie sie auch für Kino- und und Studenten, die zum Aus- Videofilme üblich sind, sind oft vorsichtig gewählt tausch ins Ausland gehen und sinnvoll, werden jedoch in der Regel vom Au- wollen. Das Spiel unterstützt tor selbst gewählt. Sie bieten dennoch eine gute auch Sprachausgabe und Orientierung. wurde in einer Veranstaltung der „Hochschule der Medien, Es folgen ein paar Beispiele für Anwendungen Stuttgart“ entworfen. und Erweiterungen, die Ideen umsetzen wie man Ren’Py nutzen kann. Zunächst mit dem Fokus 2011 fertiggestellt wurde ge- auf Übersetzung und deutsche Sprache. rade die deutsche Überset- zung von Katawa Shoujo Akt Deutschsprachige Ren’Py-Spiele 1 [6] (Version 5), einem Spiel, Das bereits erwähnte Open-Source-Spiel Moon- das seit 2006 mit Ren’Py ent- light Walks 2.0 gibt es bereits neben Englisch auf wickelt wird und nicht nur im Tschechisch und Russisch, aber – wie die meis- Umfang zu den am stärks- ten Spiele – (noch) nicht auf Deutsch. Während ten ausgearbeiteten Program- Mehrsprachigkeit schon jetzt möglich ist, ist eine men gehört, die bislang mit „Felix, Gaijin“, das erste deutschsprachige Ren’Py-Spiel.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 31 SPIELE

Erweiterungsmodule und Anregungen geben kann, wo und wie man und weitere Spielarten verschiedene Grafikressourcen einbauen kann. Die Erstellung von Spielen innerhalb nur eines Inzwischen gibt es bereits Monats hat seit 2005 Tradition in der Ren’Py- ein paar Erweiterungen für Community und findet einmal im Jahr als eine Art Ren’Py, die eine Anwendung Wettbewerb statt („NaNoRenO”). für weitere Spielgenres verein- fachen. Genannt sei hier bei- Das Modul „dse“ [9] sei kurz als weiteres Beispiel spielsweise ein Battle-Engine- genannt. Es ist eine einfache und leicht nachvoll- Modul für Rollenspiele wie ziehbare kurze Open-Source-Demonstration oh- die „RPG Battle Engine for ne Grafik, das den Aufbau einer Dating Simula- Ren’Py“ [7]. Das (wie ab jetzt tion verständlich macht und als Vorlage dienen immer) englische Spiel Elven kann. Relations [8] demonstriert eine Das Spiel Magical Boutique [10] enthält verschie- Möglichkeit, Kämpfe mit Rol- dene Elemente. Unter anderem die einer Wirt- lenspielelementen zu realisie- schaftssimulation. Der Quellcode wurde vom Au- ren. Daneben kann man in die- torenteam als Open Source veröffentlicht, mit sem Spiel als männlicher Teil- dem Ziel als Beispiel für andere zu dienen nehmer einer diplomatischen (nur das Spielskript selbst ist Open Source). In Katawa Shoujo trifft die Hauptperson auch auf eine Malerin, die Mission von Menschen zu El- keine Hände hat. ben versuchen, das Herz einer komplett altersübergreifend empfehlenswert, bis der weiblichen Charaktere zu gewinnen (ohne Al- auf wenige Szenen, so dass die Angabe für ein tersbeschränkung). Wer es ausprobieren möch- Altersminimum zwischen 13 und 15 schwankt. te: Viel Erfolg! Die Charaktere dieses Spiels sind, so erklären es die Charaktere selbst im Nach- Beide Spiele sind unter einer Creative- spann des Spiels, innerhalb von langer Zeit ent- Commons-Lizenz erschienen und frei erhältlich, standen, während der Rest des Spieles in Team- während der Sourcecode bei beiden nicht offen arbeit komplett innerhalb nur eines Monats ge- ist. Neben den genannten Spielen gibt es noch plant und erstellt wurde. Und das merkt man dem einige kleinere Projekte und weitere deutsch- Spiel an: Differenzierte Charaktere, eine komple- sprachige Arbeiten, die auf Fertigstellung warten. xe Storyidee und ansehnliche, teilweise handge- Auch gibt es durchaus Spieleentwickler aus dem macht wirkende Grafiken, die gezeichnet, geren- deutschen Sprachraum, bzw. Spiele, die im deut- dert oder als bearbeitetes Fotos erstellt wurden. schen Sprachraum handeln, die in der Regel Insgesamt ein gutes Beispiel für ein mit Ren’Py Auch Rollenspiel-Elemente lassen sich mit aber in englischer Sprache gehalten werden. erstelltes Spiel, das einige Möglichkeiten zeigt Ren’Py umsetzen.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 32 SPIELE

Magical Boutique nutzt neben der Verwaltung aus Creative-Commons-Material. Derzeit ist kei- lichkeit, so etwas mit frei erhältlicher Open- eines Kaufladens für Zaubertränke auch kleine ne Linux-Variante verfügbar, das Spiel war je- Source-Software selbst zu erstellen und anzu- Rollenspielelemente und besitzt zusätzlich eine doch im Eigentest mit Hilfe von Wine spielbar. Ei- bieten. In diesem Zusammenhang ist vielleicht spielbestimmende Handlung. Das Spiel hat eine ne andere Methode ist, die exe-Datei zu ignorie- auch die erweiterte Möglichkeit zur Erstellung nette Grafik und demonstriert neben dem Spiel- ren, das Spiel in den Ren’Py-Ordner zu kopieren von Android-Programmpaketen erwähnenswert. spaß, wie sich diese Elemente mit Ren’Py ver- und über den Ren’Py-Launcher zu starten. Dies Mit Ren’Py erstellte Programme sind nicht immer binden lassen. funktioniert nicht immer, kann aber gelegentlich eindeutig in die Kategorien Spiel, Literatur oder dabei helfen, auch Nicht-Linuxspiele nativ unter Animation einzuordnen. Wem der häufig verwendete Comic-/Manga-Stil Linux zu starten. nicht zusagt oder wer gern bei Krimis mitfiebert, Kommerzielle Spiele für den ist evtl. The Loyal Kinsman [11] das Rich- Neben Spielen lässt sich Ren’Py durchaus für tige. Die englischsprachige Geschichte um die andere Software nutzen. So sollte es relativ ein- Derzeit erscheinen nebenher mehr und mehr Aufklärung eines Mordes spielt auf einer deut- fach möglich sein, mit Hilfe von Ren’Py bei Prä- kommerzielle Ren’Py-Spiele. Relativ neu ist bei- schen Burg im Mittelalter. Die Grafiken stammen sentationen den gewohnten Powerpoint-Stil zu spielsweise NagiQ, eine Art Scrabble mit Hinter- durchbrechen, was im Ein- grundgeschichte im Zeichentrick-Stil. Gleich ei- zelfall sicherlich mal wün- ne ganze Reihe von kommerziellen Spielen bie- schenswert ist. Zu diesem ten Tycoon-Games/Winterwolves [12] an. Darun- Zweck ist Ren’Py schein- ter Umsetzungen, die dem klassischen Adven- bar auch schon häufiger ture näher kommen und einige zusätzliche Spiel- eingesetzt worden. Schon elemente bieten. Von Science-Fiction über karibi- das Tutorial von Ren’Py sche Hochseeromantik zu Detektiv-Mystery las- demonstriert die Anschau- sen sich Demos auch für Linux herunterladen lichkeit, die mit Ren’Py und spielen. Daneben gibt es weitere, unabhängi- erstellte Anleitungen und ge Anbieter von kommerziellen Spielen, wie zum Dokumentationen aufwei- Beispiel einzelne Autoren, die ihre Spiele selbst sen können. vermarkten.

Schaut man sich die dies- Ren’Py bietet standardmäßig ebenso an, den jährigen Berichte von der Quellcode und Grafiken offen lesbar zu lassen Frankfurter Buchmesse (also: Open-Source-geeignet) – oder alternativ an, so sind „enhanced die eigene Arbeit zumindest grundlegend zu ebooks“ derzeit Topthe- schützen. Dies ist auch selektiv möglich – bei- ma der Buchbranche. Die spielsweise bei der Mitnutzung von freien Grafi- Nutzung von Ren’Py ist ken, sodass entsprechende Lizenzen erfüllt wer- Krimis lösen mit The Loyal Kinsman. sicher eine einfache Mög- den können.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 33 SPIELE

Kommerzielle Spiele unterschei- eben auch auf einer Websei- det von frei erhältlichen Spie- te einsetzbar ist. Dafür verzich- len theoretisch nichts. Allerdings tet der Autor auf viele Funktio- muss man durchaus sagen, dass nen, die Ren’Py zusätzlich bie- die bislang erschienenen kommer- tet, die aber nicht in jedem Fall ziellen Spiele ihr Geld scheinbar benötigt oder genutzt werden. Wert sind, aufgrund von viel Mühe Eine Anzahl von bestehenden und Arbeit in Bezug auf Spielbar- Ren’Py-Spielen sollten auf die- keit, ansprechender Grafik, Um- se Art auch im Web realisierbar fang und anderem. Einige der sein, zumal sich die Syntax an kommerziellen Spiele zeigen, was der von Ren’Py orientiert. mit dem SDK realisierbar ist, doch gibt es ebenso eine Anzahl von Fazit kreativen, ansprechenden und frei Macht es Ren’Py nun tatsäch- erhältlichen Spielen. Durch die in lich einfacher, Spiele zu er- der Regel bereit gestellten Demo- stellen? Ob ein Spiel wirk- Versionen ist der Nutzer in der La- lich gelingt, liegt weiterhin in ge, bei kommerziellen Spielen ein- der Hand des Spieleentwicklers. zuschätzen, ob sich ein Kauf für Während Ren’Py keine vorge- ihn lohnen könnte. fertigten 2-D-Landschaften à la RPG Maker [19], bietet, wo man Ähnliche Ansätze Magical Boutique. sich Spiele mit der Maus zu- Ren’Py hat sich scheinbar durch sammenklicken kann, setzt das recht frühe Verfügbarkeit und darauf aufbauen- (plattformübergreifend, basiert auf Lua) oder No- SDK stattdessen auf Anweisungen in Textskrip- de, kontinuierliche Entwicklung einen Platz ge- velStream [16], (Web- und Stream-basierter An- ten, um Inhalte einer Geschichte und dazuge- schaffen, der über den Open-Source-Einsatz satz mit Social Network-Features). Interessant hörige Grafiken auf dem Bildschirm vereinfacht hinausgeht – und nun als Vergleichsbasis für könnte auch das in JavaScript geschriebene Pro- darstellbar zu machen, wie in einem Theater- andere Projekte dient. Für den einen oder an- gramm JS-ViNE [17] sein, das aus dem akademi- stück mit Regieanweisungen. Es erleichtert die deren könnte ein Blick auf Alternativen lohnens- schen Bereich stammt. Entwickelt wurde es nach Umsetzung und stellt ein Grundgerüst zur Be- wert sein. Ähnliche Programme sind beispiels- Vorlage von Ren’Py mit Schwerpunkt auf Nutz- dienung für den Spieler zur Verfügung. Möglich- weise: Novelty [13] (Betastadium, nur Windows, barkeit auf Webseiten. Anlass war die animierte keiten der Erweiterung sind gegeben und die- Point-and-Click-Ansatz), Blade Engine [14] (ba- Illustration eines Beispiels [18]. JS-ViNE hat den se liegen in einem Rahmen, der von Python/- siert auf kommerzieller Software, hat speziel- Vorteil, dass die erstellte Geschichte/Animation PyGame mitbestimmt wird. 3-D-Shooter liegen le Lizenzrechte, nur Windows), Instead [15] wesentlich weniger Speicherplatz benötigt und nicht in diesem Rahmen, Arcade-Elemente bei-

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 34 SPIELE spielsweise schon. Neben einfachen Visual No- sik macht oder Grafiken bearbeiten kann, aber [11] http://games.renpy.org/game/loyalkinsman. vels lassen sich mit wenig mehr Aufwand jedoch vielleicht in einer der anderen Kategorien Schwä- shtml vor allem weitere Arten von Adventures erstel- chen aufweist, kann oft mit ein paar Ideen Ab- [12] http://www.winterwolves.com/linux_games. len. Ren’Py ist dabei so wenig an den Manga- striche machen – oder sich ein Team suchen. htm stil oder den japanischen Visual Novel-Stil ge- Kleinere Projekte sind durchaus schnell umsetz- [13] http://www.visualnovelty.com/ bunden, wie Textadventures in englischer oder bar und Fortschritte leicht sichtbar, während die [14] http://www.bladeengine.com/ japanischer Sprache zu erscheinen haben. Exis- Grenzen nach oben offen sind und eventuell ei- [15] http://instead.syscall.ru/wiki/en/start tierende Open-Source-Erweiterungen/Spiele de- niges mehr an Zeit und Aufwand benötigen. Wer [16] http://www.visualnoveldai.com/NovelStream monstrieren z. B. Rollenspielelemente, Kampf- einen attraktiven Anreiz für eigene Programmier- [17] http://langintro.com/js-vine/ elemente oder Simulationsspiele. projekte sucht, wird hier neben Anschauungsma- [18] http://evc-cit.info/psych018/hyptest/ terial Möglichkeiten zur Umsetzung finden. Ren’Py hat es geschafft, bislang von der Linux- [19] http://de.wikipedia.org/wiki/RPG_Maker bzw. Open-Source-Community zumindest in wei- Sollten einmal Fragen oder Probleme auftau- [20] http://games.renpy.org/special/linux ten Teilen unbemerkt eine plattformübergreifen- chen, können diese mit Hilfe der englischspra- [21] http://lemmasoft.renai.us/forums/ de Basis für die Entwicklung von 2-D-Spielen chigen Community gelöst werden. Dazu existie- [22] http://www.renpy.org/wiki/renpy/Wiki_Home_ mit Schwerpunkt Textadventure/Visual Novel zu ren ein Forum [21], ein IRC-Kanal (#renpy auf Page schaffen. Bislang sind bereits über 300 Spie- irc.freenode.net) und ein Wiki [22]. le [20] unter Linux spielbar, auch wenn nur ein Der Entwicklung eigener Programme, auch auf Bruchteil davon unter Linux entwickelt wurde. Die Autoreninformation meisten davon sind kostenlos erhältlich und eini- Open-Source-Basis, steht damit nichts im Wege. Arne Weißendorn hat vor einigen ge Spiele haben eine ausgiebige Entwicklungs- LINKS zeit hinter sich. Ren’Py-Programme, die mit die- Monaten Ren’Py in den Paketquellen [1] http://www.animenewsnetwork.com/pressrelease. sem Open-Source-SDK auch als Open-Source- seiner Distribution entdeckt. Die Idee, php?id=1510 Projekte realisiert wurden, existieren, sind jedoch dass dieses Programm es unter Linux [2] http://www.renpy.org derzeit nicht die Regel. Um selbst ein Ren’Py- erleichtern könnte, Ideen kreativ um- [3] http://www.renpy.org/latest.html Spiel zu erschaffen, benötigt man nahezu keine zusetzen und ebenso helfen könnte besonderen Kenntnisse im Programmierbereich, [4] http://www.bishoujo.us/moonlight/ Programmierkenntnisse anschaulich sofern man sich an einem einfachem Textad- [5] http://www.serik.de/felix zu vertiefen, hat ihn dazu veranlasst, venture (auch mit grafischen Elementen) versu- [6] http://www.katawa-shoujo.com/?l=de dieses Thema zu recherchieren chen möchte. Wer komplexere Aufgaben sucht, [7] http://eviscerate.net/article/rpg-battle-engine- und sich mit Ren’Py vertiefend zu dem steht mit Python eine gute Grundlage dafür renpy beschäftigen. zur Verfügung, während Ren’Py viele Standard- [8] http://toothycat.net/~hologram/ElvenRelations/ aufgaben abnimmt. Wer selbst schreibt, erhält [9] http://www.renpy.org/wiki/renpy/Frameworks# ein Werkzeug, um Geschichten über den Bild- DSE_.28Dating_Sim_Engine.29 Diesen Artikel kommentieren schirm zu vermitteln. Wer gut zeichnen kann, Mu- [10] http://monele.eviscerate.net/magbou/

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 35 SPIELE

Kurzreview: Humble Voxatron Debut von Dominik Wagenführ

achdem Ende Juli/Anfang August das 4 GB RAM und einer NVIDIA- dritte Humble Indie Bundle ins Rennen GTX460-Grafikkarte getestet. N ging (siehe „Kurzreview: Humble In- die Bundle 3“, freiesMagazin 08/2011 [1]), ver- Voxatron öffentlichten die Humble-Macher Ende Sep- Wer „Voxatron“ [5] das erste tember/Anfang Oktober bereits das nächs- Mal sieht, wird sich vielleicht te Bundle namens Humble Frozen Synapse an Minecraft [6] erinnert füh- Bundle. Und nicht einmal einen Monat da- len. In Voxatron steuert man nach erschien das „Humble Voxatron Debut“, einen kleinen Roboter, der welches kurz vorgestellt werden soll. sich hüpfend und schießend durch eine Voxel-Welt [7] be- Das „Humble Voxatron Debut“ wurde am 1. No- wegt. In verschiedenen Le- vember 2011 vorgestellt und umfasste anfangs vels kämpft man gegen klei- nur die Alpha-Version des Spiels „Voxatron“. Am ne Krabbelmonster oder auch gleichen Tag kamen dann die beiden Spiele „The größere bösartige Kreaturen. Binding of Isaac“ und „Blocks That Matter“ für alle Zwei gegen einen ist unfair . . . Käufer, die mehr als den aktuellen Durchschnitt Obwohl die Voxel-Grafik nur (derzeit etwas unter 5 Euro) zahlen, dazu. Das wenige Bildpunkte zulässt, Bundle kann noch bis zum 14. November 2011 sind die Gegner sehr schön auf der Humble-Webseite [2] zum Selbstbestim- gestaltet. Auch die Levels wir- mungspreis erworben werden. ken gut. Und wem sie nicht ge- fallen, kann im spieleigenen Wie immer kann man den Kaufpreis auf die Editor selbst seine kreative Spielentwickler, die Anbieter des Humble Bund- Ader ausleben. Daneben ist les, die Electronic Frontier Foundation [3] und so gut wie alles in den Levels die Charity-Organisation Child’s Play [4] verteilen. zerstörbar und so zerfallen Ein weiterer wichtiger Aspekt des Spielepaketes auch Apfelbäume nach dem ist auch, dass die Spiele DRM-frei sind und un- „Fällen“ in ihre Hunderte von ter den drei großen Plattformen Linux, Mac OS X Voxel. und Windows spielbar sind. „Voxatron“ ist noch im Alpha- Hinweis: Alle Spiele wurde unter Ubuntu 10.04 Stadium, also fern von fertig, 64-bit auf einem Intel Core2 Duo mit 3 GHz, macht aber auch jetzt schon . . . und endet meist nicht gut.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 36 SPIELE viel Spaß. Jeder, der das Spiel im Humble- Später erhält man auch die Möglichkeit, ähnlich leicht machbar, werden mit der Zeit aber schwe- Bundle kauft, erhält auch zukünftig alle Updates, wie in Minecraft (siehe oben) Blöcke verschiede- rer, sodass man sich schon Gedanken machen ohne extra dafür zahlen zu müssen. ner Art (Stein, Holz, Sand, etc.) mit einem Bohrer muss, wo man die wenigen eingesammelten Blö- abzubauen und – was eher der Clou am Spiel ist cke im Level unterbringt, um beispielsweise eine Blocks That Matter – wieder aufzubauen. Die Levels sind meist recht höher gelegene Plattform zu erreichen. simpel aufgebaut. Aufgabe ist es, sich vom Start- Zwei Entwickler aus dem Lande der Indie-Games Insgesamt ist das Spiel ein netter Zeitver- punkt bis zum Ende vorzuknobeln, wo ein Portal (Schweden – laut Intro) werden entführt. Sie kön- treib, für Leute, die Knobelei gerne mit kleinen den Roboter ins nächste Level transportiert. nen aber mit ihrer letzten Kreation Kontakt auf- Jump & Run-Einlagen verbinden. Für Kinder ist nehmen und dem kleinen Roboter Befehle ertei- das Spiel gut geeignet (wenn sie der englischen len, damit dieser sich bis zu den beiden Entführ- Grafisch ist „Blocks That Matter“ [8] nett anzu- oder französischen Sprache mächtig sind). ten vorarbeitet und sie befreit. Dabei ist der Hand- schauen, der kleine Roboter rennt recht lustig lungsspielraum des Roboters anfangs stark ein- durch die Gegend oder auch mal gegen die The Binding of Isaac geschränkt; so kann man nur laufen und hüpfen. Wand. Spielerisch sind die ersten Level noch In „The Binding of Isaac“ [9] übernimmt man man die Rolle des kleinen Isaac, der von seiner Mut- ter auf Gottes Geheiß hin geopfert werden soll. Isaac hat wenig Lust zu sterben und versteckt sich daher im Keller des Hauses, wo er auf ab- struse Kreaturen trifft, die es zu bekämpfen gilt. Von der Idee her ist das Spiel klasse. Isaac ist na- türlich eine Anlehnung an die Bibel, in der Abra- ham seinen Sohn Isaak als Gottesprobe opfern soll [10]. Auch andere Figuren im Spiel sind nach biblischen Vorbildern benannt. Die Kreaturen, ge- gen die man in den Gemäuern kämpft, sind sehr kreativ gestaltet und verhalten sich sehr unter- schiedlich. Neben einfachen Fliegen und Maden gibt es auch diverse Arten von Zombies (mit und ohne Kopf) oder Gestalten, bei denen man nicht einmal erkennt, um was es sich handeln soll. Das Ganze ist grafisch sehr knuddelig gestaltet, auch wenn die Farbe Rot viele Level dominiert. Die unterschiedlichen Level ergeben immer eine Am Anfang jedes Levels kommunzieren die zwei Entwickler mit dem Roboter. Ebene des Kellers. Bei jedem Start werden sie

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 37 SPIELE

zufällig aufgebaut, was den Es sei noch darauf hingewiesen, dass die Spiele Wiederspiel-Reiz etwas erhöht. Dies nicht Open Source sind, was sich aber gegebe- muss aber auch so sein, denn wenn nenfalls in der Zukunft ändern kann. man auf einer Ebene stirbt, muss man wieder komplett von vorne anfangen. LINKS Angesichts der wenigen Treffer, die man [1] http://www.freiesmagazin.de/freiesMagazin-2011- einstecken kann, ist das frustierend. Är- 08 gerlich ist auch die Schießfunktion, da [2] http://www.humblebundle.com/ man nur waagerecht oder horizontal [3] https://www.eff.org/ schießen kann. Das nimmt einem viel [4] http://www.childsplaycharity.org/ an Freiheit, zumal es Monster gibt, die [5] http://www.lexaloffle.com/voxatron.php schräg zurückschießen. Der Neustart [6] http://www.minecraft.net/ ist immerhin nicht ganz so ärgerlich, [7] https://secure.wikimedia.org/wikipedia/de/wiki/ weil man bei jedem Spielstart erneut Voxel Boni sammeln oder weitere Charaktere [8] http://www.swingswingsubmarine.com/games/ freischalten kann. blocks-that-matter/ Zombies mal ohne Kopf. [9] http://www.bindingofisaac.com/ Insgesamt ist „The Binding of Isaac“ the- matisch zwar klasse, könnte technisch [10] https://secure.wikimedia.org/wikipedia/de/ wiki/Isaak_%28Genesis%29#Biblische_.C3. aber etwas besser sein. Die Geschichte 9Cberlieferung und die Ausarbeitung ist definitiv nicht für Kinder gedacht.

Autoreninformation Fazit Dominik Wagenführ (Webseite) Insgesamt lohnt sich ein Kauf des Hum- spielt sehr gerne unter Linux. Vor ble Voxatron Debut, zumal man den allem Geschicklichkeits- und Denk- Preis selbst festlegen kann und so si- spiele machen ihm dabei viel Spaß. cherlich nicht übers Ohr gehauen wird. Er ist aber auch sonst offen für fast Alle drei Spiele haben ihren Reiz auf die jedes Genre. eine oder andere Art. Unter Umständen werden in den nächsten Tagen (wie dies früher auch immer der Fall war) noch an- Snake lässt grüßen. dere Spiele zum Bundle hinzugefügt. Diesen Artikel kommentieren

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 38 VERANSTALTUNG

Bericht von der Ubucon 2011 von Vicki Ebeling und Dominik Wagenführ

as fünfte Jahr Ubucon [1] und das Freitag, 14. Oktober 2011 Samstag, 15. Oktober 2011 zweite Jahr in Leipzig. Das Fazit der Anmeldung Freie Software D Besucher vorab: Es hat extrem viel Die Ubucon 2011 startete offiziell gegen Der Samstag sollte nicht so ruhig ablaufen, wie Spaß gemacht, neue und vor allem alte Ge- 16:30 Uhr mit der Begrüßung. Zahlreiche Helfer der Freitag, schließlich gab es viele Vorträge zu sichter wiederzusehen und die Zeit gemein- trafen aber bereits vorher ein, um z. B. in starker hören. In vier Räumen fanden über den Tag ver- sam zu verbringen. Gruppenarbeit Namensschilder auszuschneiden teilt Vorträge, Workshops und Diskussionen zu oder auch um den Besuchern ihre Tasse auszu- verschiedenen Themen statt. Insgesamt 36 Vor- Redaktioneller Hinweis: Alle Bilder im Artikel händigen. träge in 50 Stunden wurde den Teilnehmern an stammen von Dominik Wagenführ. dem Wochenende geboten. Zur Begrüßungsrunde fanden sich bereits 40 bis 50 Leute ein. Zusammen mit Torsten Franz und Der erste Vortrag [3] war von Thomas Jensch von Martin Kaufmann hielt ich (Dominik Wagenführ) der Foundation Europe [4]. Dieser eine kurze Ansprache und alle Besucher wurden erzählte über den Aufbau und die Aktionen der willkommen geheißen. FSFE. Er ging dabei sehr gut auf die Fragen der Hörer ein, sodass ein angeregtes Gespräch Social Event Die ersten Vorträge am Freitag von 17 bis 18 Uhr haben wir aus- gelassen und stattdessen weiter am Empfang mitgeholfen. Gegen 18:30 Uhr gab es eine Stadtrund- führung und, wie im letzten Jahr, gab Ellen eine großartige Reiselei- terin ab und konnte viel über die Ge- schichte von Leipzig erzählen. Den Abschluss fand der Rundgang an der Nikolaikirche im Gasthaus Al- te Nikolaischule [2]. Dort saß dann ein Großteil der freitags angereis- ten Ubucon-Teilnehmer gemütlich zusammen und es wurde bis in die Nacht hinein gegessen, getrunken Jeder Teilnehmer erhielt eine Tasse. und viel geredet. Das Gewandhaus zu Leipzig und der Mendebrunnen.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 39 VERANSTALTUNG in der einen Stunde stattfinden konnte. Als die Kommunikation ist wichtig nehmer etwas warten mussten. In dem Work- Aktion „AskYourCandidate“, bei der Politiker be- Danach stellte Dr. Thomas Rose [5] in einem shop wurde gezeigt, wie man mit wenigen Hand- fragt und Parteiprogramme analysiert werden, nicht-fachbezogenen Vortrag vor, welche Kom- griffen (IWarp-Filter, Überlagerung von Ebenen, kam auch die Frage auf, welche Partei die FSFE munikationsprobleme zwischen Menschen [6] Lichtkegel etc.) aus einem Menschen in Frontan- denn empfiehlt. Thomas Jensch wollte sich hier entstehen können und wie man diese überwindet. sicht einen Naavi machen kann. nicht festlegen, ließ sich aber zumindest zu der Dabei bezog er seine Zuhörer aktiv in das Ge- Graphen zeichnen Aussage „Die CDU ist in ihrem Wahlprogramm schehen mit ein. Diese mussten sich beispiels- Um 11 Uhr hatte ich (Dominik Wagenführ) einen nicht durch IT-Kompetenz aufgefallen.“ hinreißen, weise im Raum nach Geburtstagen (nur Tag und eigenen Workshop zum Thema „Graphen zeich- was natürlich Lacher erzeugte. Obwohl Thomas Monat ohne Jahr) sortiert aufstellen, ohne aber nen mit dot“ [8]. Es gab viele Zuhörer, die fleißig Jensch nur eine Folie zeigte, konnte er anhand irgendwelche Zahlen oder Monate sagen zu dür- die Beispiele mittippten und ausprobierten. Ins- dieser dennoch den ganzen Aufbau und Aktions- fen. Dies lief erstaunlich gut ab und lockerte das gesamt kam der Workshop ganz gut an und es radius der FSFE zeigen. Publikum auf. Man kann nur hoffen, dass es konnte in den zwei Stunden gezeigt werden, was solche Vorträge man mit dot alles machen kann – und was nicht. auch auf anderen Ubucons geben Freie Projekte und Community wird, da Kommu- Gut gestärkt ging es dann in die nächste Dis- nikation bei Open- kussionsrunde [9]. Zusammen mit Ingo Ebel von Source-Projekten Radio [10] und Torsten Franz von ubuntu- erfahrungsgemäß users.de [11] sowie Dirk Deimeke [12] als Mode- manchmal ein Pro- rator sprachen wir zu dritt über unsere Projekte blem sein kann. (ich (Dominik Wagenführ) vertrat freiesMagazin) und welchen Teil die Community dazu beitragen Alles GIMP kann, diese Projekte bzw. Freie Projekte im All- gemeinen unterstützen kann. Aus dem Publikum Parallel zu den hätte noch etwas mehr Resonanz kommen kön- oben genannten nen bzw. war die Einbeziehung der Zuhörer nicht Vorträgen gab optimal. Dennoch wurden einige Fragen von den es einen GIMP- ca. 15 Teilnehmern gestellt und diese konnten Workshop von Sir- auch über ihre Teilnahme oder ggf. den Grund ei- ko Kemter [7]. Lei- ner Nichtteilnahme an anderen Freien Projekten der kam dieser berichten. aufgrund eines verpassten Zuges 2.6 Server-Fragen zu spät, sodass Parallel dazu fand die Server-Fragestunde mit Mi- Dr. Thomas Rose über die Tücken der Kommunikation. die circa 40 Teil- chael Zoet statt [13]. Die Themen waren vielfältig

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 40 VERANSTALTUNG und reichten von der Vernetzung in heterogenen Netzwerken über IPv6 bis hin zur Sicherheit und Anwendungsmöglichkeiten in Cloud-Systemen. Unter den circa 20 Teilnehmern saßen zwar vor allem Server-Profis, aber auch einige Anfänger hatten sich in die Diskussion „verirrt“ und konn- ten Fragen stellen.

Zum Urheberrecht Nach dem vielen Reden wurde es etwas theore- tischer, aber nicht langweiliger. Oskar Hahn stell- te verschiedene Open-Source-Lizenzen [14] wie die GPL oder die BSD-Lizenz im Detail vor. Zu- vor ging er aber noch sehr gut und ausführlich auf das deutsche Urheberrecht ein, sodass man auch als Nicht-Jurist verstehen konnte, was ei- ne Lizenz wie die GPL bewirken kann und was nicht. Die Teilnehmerzahl war wieder sehr hoch und der Raum extrem gut gefüllt. Aufgrund der Fülle an Zwischenfragen, die das Interesse an dem Thema widerspiegelte, war am Ende leider nicht mehr genügend Zeit vorhanden, um alle Fo- Eine der zahlreichen sehr schön gestalteten Passagen in Leipzig. lien aufzulegen. die Fragen nach Schwierigkeitsgrad sortiert, was der Ubuntu-Community. Auch „Neulinge”, die das Linux-Quiz den Kandidaten die Auswahl etwas erleichterte. erste Mal auf der Ubucon waren, wurden herzlich Wie im letzten Jahr gab es zum Abschluss des in den Kreis aufgenommen. Tages ein Linux-Quiz [15], bei dem wieder zwei Social Event, die Zweite Personen gegeneinander antreten konnten und Am Samstag gab es auch wieder einen Stadt- Allgemein war die Teilnehmerzahl der diesjähri- Jeopardy-mäßig aus verschiedenen Kategori- rundgang von Ellen, die eingesprungen war, weil gen Ubucon etwas geringer als letztes Jahr. Ik- en Fragen beantworten mussten. Der Gewinner der eigentliche Gruppenführer abgesagt hatte. haya [18] spricht von ungefähr 200 Teilnehmern, konnte sich dann ein Buch aus dem Galileo- Danach ging es zum Frizz Karli [17], welches die den Weg nach Leipzig gefunden hatten. Zum Verlag [16] aussuchen, welche alle von diesem bereits letztes Jahr eine gute Herberge bot. Es Vergleich: Im Vorjahr waren es 250. Erfreulicher- gesponsert wurden. Der „Verlierer“ musste sich wurde auch diesmal wieder sehr viel geredet, ge- weise stieg die Frauenquote aber sowohl absolut mit einer Leipziger Lerche begnügen, was dann trunken und gelacht. Dies zeigt dann auch wie- als auch prozentual zum Vorjahr an. Und dies doch nicht so schlimm war. Dieses Jahr waren der das recht gute Verständnis untereinander in nicht deswegen, weil die Frauen als Anhängsel

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 41 VERANSTALTUNG

für einen Freund fungierten, der freundlicherweise auch vom DANTE e.V. [21] ge- sich für Ubuntu interessiert, son- spendet wurde. dern weil sie Interesse an der Mes- Inkscape-Icons se selbst hatten. Parallel dazu fand ein Inkscape-Workshop, er- Sonntag, 16. Oktober 2011 neut von Sirko Kemter, statt [22]. Leider hat auch dieses Mal die Bahn einen Strich durch LAT X überall E seine Rechnung gemacht, sodass sich die 20 Nach einer recht kurzen Nacht Teilnehmer wieder etwas gedulden mussten. Da- fand früh morgens ein Vortrag zum für bekamen sie dann die Gelegenheit, eini- Thema XeLaTeX und Beamer [19] ges über die Grundsätze des Icon-Designs zu statt. Sebastian Bator erklärte zum lernen, und konnten anhand einer Schritt-für- einen die Unterschiede zwischen Schritt-Anleitung auch ein eigenes Icon mit Ink- XeLaTeX und LAT X und zeigte zum E scape erstellen. anderen anhand seiner eigenen Präsentation, wie er das Layout mit Alles Kubuntu dem Beamer-Paket gestaltete. Vor der Mittagspause gab es noch einen einstün- digen Vortrag zum Thema Kubuntu [23], in dem Sebastian Bator erklärt die Vorteile von XeLaTeX. Praktischerweise fand danach Arthur Schiwon auf die Neuerung in der neuen der Vortrag LAT X – Tipps & Tricks“ E Version 11.10 „Oneiric Ozelot“ einging, die erst statt [20], den ich (Dominik Wagen- am Donnerstag zuvor veröffentlicht worden war. führ) hielt. Mit 15 Leuten war dieser Am Ende zeigt er live auch die Neuheiten an sei- ganz gut besucht. Der Vortrag war nem Notebook, sodass die Zuhörer gezielt Fra- so aufgebaut, dass durch Frage- gen stellen konnten. Antwort-Spiele das Publikum mitein- bezogen werden sollte, aber nicht Umgang mit Kritik alle Antworten waren bekannt (bzw. Nach der Mittagspause hielt dann Dr. Thomas recht wenige, um genau zu sein). Rose einen zweiten Vortrag und erklärte, wie Das war für die Interaktion zwar man am besten mit Kritik umgeht. Hierbei heißt schade, andererseits kann man die Devise eigentlich „Kopf einschalten und ana- aber auch von Glück reden, da die lysieren“. Die meisten Reaktionen auf Kritik ge- Teilnehmer so noch etwas lernen schehen ihm zufolge aus dem Bauch heraus und konnten. Am Ende gab es noch ein sind deswegen oft nicht zielführend. Wie am Vor- kleines Wissensquiz. Hierfür hatte tag war der Vortrag sehr gut, auch wenn dies- ich verschiedene LATEX-Bücher von mal das Publikum nicht ganz so stark zum Mit- Arthur Schiwon stellt die Neuerungen von Kubuntu vor. Herbert Voß besorgt, wobei eines machen angeregt wurde.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 42 VERANSTALTUNG

Abschied Free! Music! Contest! 2011 [26] verteilt. Die CD [17] http://www.frizz-karli.de/ Die Verabschiedung des neu gewählten ubuntu- enthält freie Musik verschiedener Stilrichtungen. [18] http://ikhaya.ubuntuusers.de/2011/10/17/ubucon- Deutschland-e.V.-Vorsitzenden Richard Ver- Da noch eine CD übrig ist, wird diese hiermit 2011-ubuntu-community-traf-sich-in-leipzig/ wayen konnten wir nicht mehr hören, da wir uns verlost. Wer uns zuerst sagt, aus welchem Film [19] http://www.ubucon.de/programm/bildschirmprae alle früher auf den Heimweg gemacht haben. Es die in GIMP erstellten Naavi stammen, kann sentationen_mit_xelatex wurde aber wahrscheinlich nicht mehr so viel ge- die CD gewinnen. Lösungen einfach in den [20] http://www.ubucon.de/programm/latex_tipps_ sagt wurde, außer vielleicht der Leitspruch der Kommentaren am Ende des Artikels oder an und_tricks diesjährigen Ubucon: „Esst mehr Brötchen!“ (850 . [21] http://www.dante.de/ waren es dieses Jahr, die die 200 Teilnehmer in [22] http://www.ubucon.de/programm/inkscape_mein_ 3 Tagen „vernichten“ mussten!) LINKS erstes_icon Wer an der Ubucon teilgenommen hat und Feed- [1] http://www.ubucon.de/ [23] http://www.ubucon.de/programm/kubuntu back abgeben will, kann dies über das Webfor- [2] http://www.alte-nikolaischule.de/ [24] http://www.ubucon.de/feedback mular [24] tun. Inzwischen stehen auch so gut [3] http://www.ubucon.de/programm/freie_software_ [25] http://www.ubucon.de/material wie alle Vorträge zum Download bereit [25]. im_spannungsfeld_der_politik_und_gesellschaft [26] http://musik.klarmachen-zum-aendern.de/fmc/ 2011/free_music_contest_gewinner Redaktioneller Hinweis: Auf der Ubucon [4] http://fsfe.org/index.de.html wurden auch wie im Jahr zuvor CDs des [5] http://tachles.cc/ [6] http://www.ubucon.de/programm/du_verstehst_ Autoreninformation mich_nicht [7] http://www.ubucon.de/programm/gimp_wie_ein_ Dominik Wagenführ ist Chefredak- mensch_zum_naavi_wird teur bei freiesMagazin und bindet [8] http://www.ubucon.de/programm/graphen_ sich stark in die Linux-Community ein, zeichnen_mit_dot sodass er sowohl bei der Ubucon- [9] http://www.ubucon.de/programm/freie_projekte_ Programmorganisation mithalf und und_ihre_community auch selbst einige Vorträge hielt. [10] http://www.radio-tux.de/ Für Vicki Ebeling war es die dritte [11] http://www.ubuntuusers.de/ Ubucon und diesmal half sie auch mit, [12] http://www.deimeke.net/dirk/blog/ wenn Not an der Frau war. Für nächs- [13] http://www.ubucon.de/programm/fragestunde_ tes Jahr hat sie sich vorgenommen, fuer_server-themen auch einen Vortrag zu halten. [14] http://www.ubucon.de/programm/open_source_ lizenzen [15] http://www.ubucon.de/programm/linux_quiz Diesen Artikel kommentieren Die sehr gut gestalteten Plakate der Ubucon. [16] http://www.galileo-press.de/

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 43 WISSENUND BILDUNG

Freie Software in der Schule – sinnvoll oder nicht? von Sebastian Seitz

pricht man über Schule und Software, Bildungseinrichtungen. Zusätzlich zur Tatsache, nen sich diese Tatsache wesentlich stärker auf so denken die meisten recht schnell dass sie meistens kostenlos verfügbar ist, bietet die Arbeit auswirkt. Allerdings werden in diesen S an den Informatikunterricht. Das ist bei Freie Software aber noch viel mehr. Alle Möglich- kaum Änderungen an Programmen durchgeführt, Freier Software nicht anders. Aber Freie Soft- keiten, Pflichten und Potenziale Freier Software die für die Schule selbst oder zumindest für ware ist deutlich mehr als nur Software. Die werden durch ihre jeweilige Lizenz definiert – das den Unterricht relevant sind wie beispielsweise ihr zu Grunde liegende Philosophie hat eini- ist nichts Neues. Im Allgemeinen spricht man da- an einem Webbrowser oder einem Office-Paket. ges mit der Idee (und auch der Praxis) der bei von den vier Freiheiten [2]: Nutzen, Teilen, Die direkten Vorteile scheinen also beim freien Schule gemein. Studieren, Verbessern. Aber welche davon sind Studieren eher gering. Die indirekten hingegen eigentlich für die Schule relevant? sind deutlich größer. Durch die Möglichkeit, den Warum Freie Software? Programmcode zu studieren, wird einerseits die Der erste Absatz von § 2 der Lernmittelverord- Vier Freiheiten Möglichkeit gegeben, autodidaktische Fähigkei- nung [1] des Landes Berlin liest sich im ersten Die freie Nutzung einer Software bezeichnet den ten zu befriedigen. Andererseits transportiert die- Moment wie ein Freifahrtschein für Freie Soft- Aspekt, dass die Software von jedem und für al- se Tatsache eine der Schule von Anfang an in- ware in der Schule: „Unterscheidet sich ein Lern- les benutzt werden darf. Daneben ist Freie Soft- newohnende Botschaft: Sei transparent. Wissen mittel der Art, dem Inhalt und der didaktisch- ware sehr oft kostenlos, was aber nicht zwin- soll nicht nur wiedergegeben, sondern verstan- methodischen Aufbereitung nach nicht wesent- gend so sein muss. Dennoch ist dieser Punkt den werden. Dafür muss es transparent, also lich von einem anderen, so ist das preisgünstigs- essentiell für die Schule. Es fallen keine Kosten durchschaubar sein. Nutzt eine Schule Freie Soft- te Lernmittel auszuwählen.“ Eine Aussage, die an, wenn es darum geht, die Software auf einer ware, so kann sie diese Botschaft viel authenti- zu denken gibt. Schließlich sind nicht nur Lehrbü- großen Anzahl an Computern zu installieren. Es scher transportieren. Eine Schule, die in ihrem cher, Lineale oder Taschenrechner als Lernmit- ist auch unproblematisch, neue Software zu tes- pädagogischen Profil stets auf Ideale wie Mitbe- tel definiert, sondern zusätzlich die Schulrechner ten und diese bei Nichtgefallen wieder zu entfer- stimmung, Transparenz und Gleichberechtigung und somit auch die verwendete Software. nen, da auch hier keine Kosten außer der Arbeits- verweist, aber durchweg IT-Strukturen nutzt, die zeit des jeweiligen Lehrers anfallen. Die freie Nut- diesen Idealen widersprechen, macht sich auf Wenn es darum geht, in der Schule Freie Soft- zung ist daher der für die Schule entscheidende den zweiten Blick unglaubwürdig – häufig jedoch ware einzusetzen, kommt es bei Lehrern oftmals Faktor bei der Wahl Freier Software. ohne es zu wissen. zu Verwechslungen mit Freeware. Das mag dar- an liegen, dass das häufigste Argument für den Beim freien Studieren sieht das anders aus. Wäh- Dem freien Teilen kommt in der Schule eine be- Einsatz Freier Software deren kostenlose Verfüg- rend die freie Nutzung der Software allen Partei- sondere Stellung zu. Während man früher glaub- barkeit ist. Und darin ähneln sich Freie Software en der Schule zugute kommt, ist das freie Stu- te, dass alle Schüler mit den gleichen Vorausset- und Freeware nun einmal wesentlich. Kostenlose dieren auf den ersten Blick nur für Schüler und zungen die Schule besuchen, weiß man mittler- Software ist für Schulen äußerst praktisch, denn Lehrer des Informatikunterrichts relevant. Und weile, dass Homogenität in der Schule oder im in Zeiten von Sparmaßnahmen und Haushaltss- auch bei diesen nur sehr eingeschränkt. An man- Klassenverband eher Wunschdenken als Reali- perren seitens der Träger leiden besonders die chen Schulen existieren Computer-AGs, bei de- tät ist. Denn nicht jedes Elternhaus kann genug

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 44 WISSENUND BILDUNG

Geld für eine bestimmte Schulsoftware bereitstel- Freie Software bietet eine hervorragende Mög- nachteiligung als Entwicklungsfaktor von Schü- len. Hier kommt das freie Teilen zum Tragen. Die lichkeit, den Entstehungsprozess einer Software lern zu mindern. Sie ist damit weit mehr als eine Schule kann die genutzten Programme direkt an zu erläutern und, je nach Vorwissen der Lern- Software-Alternative für besonders interessierte die Schüler weitergeben. Geld spielt so für den gruppe und Komplexität des Programms, aktiv Lehrer und Schüler aus Informatikunterricht und Lernerfolg der Schüler keine Rolle. Zudem kön- zu unterstützen oder zu begleiten. Eine Einbet- Computer-AGs. Sie ist in der Lage, die humanisti- nen diese zu Hause mit der gleichen Software tung des Themas kann auch im Zusammen- sche Idee der Schule und ihres Bildungs- und Er- weiterlernen. Freie Software kann auf diese Art hang mit den Fächern Philosophie oder Sozial- ziehungsauftrags in den Schulalltag zu integrie- und Weise soziale wie auch didaktische Verbes- wissenschaft stattfinden und ist nicht nur auf den ren und kann helfen, Schule effizienter, freier und serungen bewirken. Informatikunterricht beschränkt. Die ideologisch- gerechter zu gestalten. geschichtlichen Grundlagen Freier Software bie- Die vierte Freiheit, das Verbessern der Software, ten hierfür genügend Material und Diskussions- LINKS ist die Fortsetzung der Freiheit, die Software zu stoff. Dabei gibt es keine Beschränkungen auf be- studieren. Auch hier erschließen sich die Vor- stimmte Schulformen. Die Medienkonzepte der [1] http://www.berlin.de/imperia/md/content/sen- teile nicht sofort, da sie vor allem indirekt wir- Länder existieren für alle allgemeinbildenden bildung/rechtsvorschriften/lernmittelvo.pdf? ken. Ein häufig angeführtes Argument folgt der Schulformen von Grund- bis Gesamtschule. start&ts=1300181404&file=lernmittelvo.pdf Idee, dass durch den freien Zugriff aller Perso- [2] http://fsfe.org/about/basics/freesoftware.de.html nen auf den Quellcode Sicherheitslücken schnel- Wer kümmert sich? [3] http://www.bildungsserver.de/zeigen.html?seite= ler aufgespürt und beseitigt werden können. Da- Bundesweit gibt es noch keine ausreichende Lö- 2884 sung für das Problem der Zuständigkeit der IT- von würde auch die Schule profitieren. Gerade [4] http://www.freiesmagazin.de/freiesMagazin-2010- hier muss dem Datenschutz eine besondere Po- Administration an Schulen. Oft kümmern sich 10 sition eingeräumt werden, denn Schulen arbei- engagierte Lehrer um das Schulnetzwerk. Hier- ten mit vertraulichen Informationen, wie zum Bei- für werden sie „freigestellt“, meist können sie so spiel Zensuren oder Informationen über eventuel- zwei bis vier Stunden für die Pflege und Entwick- le Lernbehinderungen. lung der IT-Struktur nutzen. Diese Zeit ist vollkom- Autoreninformation men unzureichend, wenn man sich vor Augen Sebastian Seitz (Webseite) ist Nebeneffekte hält, dass einige Schulen über mehr als 100 PCs verfügen. Ein professioneller Partner ist meist un- Diplom-Pädagoge und nutzt seit fünf Nahezu alle Bundesländer verfügen über schu- umgänglich, durch den Einsatz Freier Software Jahren Ubuntu. Anfang des Jahres lische und außerschulische Medienkonzepte [3], könnten die nötigen Mittel frei werden. wurde er Mitglied des Educational- die den Begriff der Medienkompetenz enthalten. Teams der FSFE. Freie Software und Hierbei geht es nicht nur um technisches Ver- Fazit (Schul-)Bildung sind seine Lieblings- ständnis, sondern auch um Fragestellungen zur Freie Software bietet in der Schule vielfältige themen. Entstehung und Nutzung von Medien (siehe „Me- Optionen, das IT-Konzept zu erweitern und die dienkompetente Ausbildung? Nur auf Basis Frei- Strukturen transparenter zu gestalten. Sie ist kos- er Software“, freiesMagazin 10/2010 [4]). teneffizient, sicher und kann helfen, soziale Be- Diesen Artikel kommentieren

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 45 REZENSION

Rezension: Android 3 – Apps entwickeln mit dem Android SDK von Michael Niedermair

as Buch „Android 3“ stellt eine dem Simulator gestartet. Dabei werden die wich- Teil III nutzt die Telefonfunktionen des Android- Einführung in die Java-Android- tigsten Dateien, die Konfiguration, die Benutzero- Smartphones. Programmierung dar und richtet sich berfläche etc. erläutert. D Im siebten Kapitel (10 Seiten) geht es um die an Leser, die bereits Java-Erfahrung besit- Telefonfunktionen wie Anrufe tätigen, auf Anrufe zen. Dabei werden professionelle Apps für Das dritte Kapitel (24 Seiten) beschreibt den reagieren, Telefon- und Netzstatus ermitteln und Smartphones und Tablets entwickelt. Es wird Weg von der Idee bis zur Veröffentlichung. Es die LOG-Funktion, um beispielsweise entgange- dabei von der Idee bis zur Veröffentlichung wird das Konzept von Android erläutert, die not- ne Anrufe anzuzeigen. im Android Market alles gezeigt. Insgesamt wendige Fachlogik und wie man vom eigentli- werden 60 Beispiel-Apps mit folgenden The- chen Programm zum Produkt kommt. Dabei wird Das achte Kapitel (28 Seiten) behandelt Widgets menschwerpunkten erläutert: Multimedia, Ka- auch die Fehlersuche, das Debuggen auf echter und Wallpapers und wie man Live Wallpapers er- mera, GPS, Kalender, GUIs, Datenbindungen, Hardware und das Verteilen der Anwendung im stellt. Multitasking und vieles mehr. Android Market und dessen Alternativen behan- delt. Das neunte Kapitel (22 Seiten) steht unter dem Redaktioneller Hinweis: Wir danken dem Ver- Motto Sensoren und GPS. Es wird der Sensor- lag Galileo Computing für die Bereitstellung ei- Teil II behandelt die elementaren Anwendungs- Manager behandelt. Der Autor demonstriert, wie nes Rezensionsexemplares. bausteine. man auf Sensoren reagieren kann und diese im Simulator testet. Anschließend geht es um Was steht drin? Das vierte Kapitel (28 Seiten) widmet sich den GPS und ortsbezogene Dienste, um den aktuel- Das Buch ist in fünf Teile mit insgesamt 16 Ka- Activities (Regeln für die Benutzeroberfläche und len Standort zu ermitteln und diesen in einer Kar- piteln mit Vorwort, Anhang und Index aufgeteilt deren Aktionen), Intents (Intents binden die Kom- te anzuzeigen. und umfasst 419 Seiten. Am Ende finden sich 13 ponenten einer oder mehrerer Apps zur Laufzeit In Teil IV geht es um Dateien und Datenbanken. Seiten Werbung, um den Druckbogen zu füllen. ein) und Broadcast Receiver (Komponenten, die auf systemweite Nachrichten reagieren). Das zehnte Kapitel (17 Seiten) erläutert das Teil I befasst sich mit den Grundlagen der Android-Dateisystem und zeigt, wie grundlegen- Android-Entwicklung. Im fünften Kapitel (33 Seiten) geht es um Benut- de Dateioperationen durchgeführt werden. Im Im ersten Kapitel (16 Seiten) geht es um die zeroberflächen wie Views und ViewGroups, um Anschluss erfolgt das Arbeiten mit externen Spei- Android-Plattform, deren Entstehung, die Syste- alternative Ressourcen, vorgefertigte Bausteine chermedien, wie zum Beispiel die SD-Card. für die Oberflächen wie Register, Reiter, Dialoge marchitektur, die Runtime-Umgebung, das Appli- Das elfte Kapitel (20 Seiten) behandelt die Daten- usw. cation Framework, das Android SDK und die Ent- bank SQLite, wie man dort Tabellen anlegt, Da- wicklungsumgebungen. tensätze speichert, abfragt und wieder löscht. Das sechste Kapitel (22 Seiten) beschäftigt sich Im zweiten Kapitel (23 Seiten) wird die erste App mit der Parallelverarbeitung mit Threads und wie Das zwölfte Kapitel (20 Seiten) zeigt, wie man mit „Hallo Android!“ mit Eclipse entwickelt und auf man Services erstellt. Content Providern arbeitet, um zum Beispiel auf

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 46 REZENSION

Wörterbücher zuzugreifen oder Bookmarks aus- „Java ist auch eine Insel“. Ein weiterer Teil des An- Buchinformationen zulesen. Anschließend wird demonstriert, wie ein hangs sind häufig gebrauchte Code-Bausteine, Titel Android 3 – Apps entwickeln mit dem An- eigener Content Provider erstellt wird. die hier ohne weitere Erklärung aufgelistet sind. droid SDK (1. Auflage 2011) Autor Thomas Künneth Abgeschlossen wird der Anhang mit dem Index, Das dreizehnte Kapitel (13 Seiten) erklärt, was Verlag Galileo Computing der neun Seiten umfasst. Er enthält Stichworte, Live Folder (kleine Symbole auf dem Home- Umfang 419+13 Seiten Programmkonstanten, Methoden und Stichwor- Bildschirm, die beim Anklicken ein Popup- ISBN 978-3-8362-1697-5 te. Fenster öffnen) sind und wie man diese erstellt. Preis 34,90 C

Teil V widmet sich dem Organizer und der Multi- Wie liest es sich? Die gesamten 60 Beispiel-Apps sind praxisorien- media. Das Buch ist für den Android-Anfänger geschrie- tiert und lassen sich leicht auf die eigenen Be- ben und setzt Java-Grundkenntnisse voraus. dürfnisse anpassen und erweitern. Im vierzehnten Kapitel (31 Seiten) geht es um Audio, zum Beispiel wie man eine Diktiergeräte- Das Buch liest sich sehr gut, alle Beispiele sind Bei 419 Seiten hätte ich mir ein umfangreicheres App erstellt und zusätzliche Audioeffekte einbaut. ausreichend gut erläutert. Es werden insgesamt Stichwortverzeichnis gewünscht. Auch die Sprachsynthese und Spracherkennung 60 Beispiel-Apps behandelt und beschrieben. Al- wird behandelt. le Beispiele sind in sich abgeschlossen. Im Buch Gesamt betrachtet muss man das Buch als sehr werden nur die wichtigen Codeteile abgedruckt, gut bewerten und wünscht sich, dass vom Autor Das fünfzehnte Kapitel (29 Seiten) behandelt Bil- der komplette Code findet sich auf der Begleit- ein weiteres Buch mit stark vertieften Program- der, Fotos und Video. Es wird gezeigt, wie man DVD. mierbeispielen erscheint. die Kamera benutzt, um so Fotos in der eigenen Jeder Anfänger kann der Beschreibung gut fol- App aufzunehmen und weiter zu verarbeiten. Die gen. Auch der schon erfahrene Leser findet das erstellte Kamera-App wird dann im Anschluss um Autoreninformation eine oder andere interessante Kapitel oder die eine Videofunktion erweitert. Beispiel-App. Kennt man sich mit einem Bereich Michael Niedermair ist Lehrer an der Im sechzehnten Kapitel (29 Seiten) werden Kon- schon aus, so kann man diesen ohne Probleme Münchener IT-Schule und unterrichtet takte verwaltet und mit dem Organizer (Kalender, überspringen, da viele Kapitel einen abgeschlos- hauptsächlich Programmierung, Termine, Alarme, . . . ) gearbeitet. senen Block darstellen. Datenbanken und IT-Technik. Er beschäftigt sich seit Jahren mit vielen Der Anhang umfasst 21 Seiten, der ein kurzes Kritik Programmiersprachen, vor allem Literaturverzeichnis enthält, gefolgt von einer Be- Das Buch ist für Android-Anfänger geschrieben Java. schreibung der Begleit-DVD. Diese enthält u.a. und dafür sehr gut geeignet. Man merkt deutlich, den kompletten Sourcecode, das Android SDK, dass der Autor viel Erfahrungen in der Android- das Java SDK sowie die Eclipse Entwicklungs- Programmierung hat. Auch für den fortgeschrit- umgebung. Zusätzlich findet man dort das Buch tenen Leser finden sich genügend Beispiele. Diesen Artikel kommentieren

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 47 REZENSION

Rezension: Canvas – kurz & gut von Jochen Schnelle

er Begriff „Canvas“ bedeutet auf das Buch nur zwei Kapitel, die beide in etwa die Dinge ausgelassen hat, ebenso wenig findet man Deutsch so viel wie „Leinwand“. Ums Hälfte des Buchs ausmachen. zu ausschweifende Erklärungen. Die Abbildun- Malen geht es auch im diesem Buch, gen sind dabei stets hilfreich, das zuvor Erklär- D Das erste Kapitel ist ein Tutorial zur Nutzung allerdings auf einer virtuelle Leinwand. Der te zu visualisieren, sodass der Leser es besser des Canvas-Elements, das zweite Kapitel ist Untertitel des Buchs präzisiert das eigent- nachvollziehen kann. eine vollständige Referenz der dem Canvas- liche Thema: Grafiken dynamisch erzeugen Element zugehörigen JavaScript-API. Das Tuto- mit HTML5. Zusammenfassung rial weist eine weitere Besonderheit auf, zumin- Wer eine sehr gute Einführung und Erklärung für Das Canvas-Element ist Teil der HTML5- dest wenn man es mit anderen Büchern aus der das Canvas-Element aus HTML5 sucht, wird in Spezifikation [1]. Mit diesem ist es möglich, „Kurz & gut“-Reihe vergleicht: Es ist sehr ausführ- diesem Buch fündig. Dabei darf man sich nicht via JavaScript dynamisch pixelbasierte Grafiken lich und komplett. vom geringen Seitenumfang des Buchs täuschen clientseitig im Browser zu zeichnen. Auch wenn . . . und gut lassen – es ist komplett. die HTML5-Spezifikation noch nicht endgültig Das Tutorial umfasst Beispiele zur kompletten Fazit: Empfehlenswert. verabschiedet ist, setzen alle neueren Browser API, welche alle als Listing im Buch abgedruckt dieses Element bereits um. Da die API auch als LINKS sind sowie, wo passend, von Abbildungen unter- stabil gilt, ist dies wohl Grund genug für den stützt werden. Diese sind durchgehend in Grau- [1] http://www.w3.org/TR/html5/the-canvas-element. O’Reilly-Verlag, dem Thema ein eigenes Buch zu stufen gedruckt. Das Tutorial ist dabei thema- html widmen. tisch gegliedert. Begonnen wird mit den grundle- genden Dingen wie dem Anlegen eines Canvas Kurz . . . Autoreninformation und dem Zeichnen von einfachen Elementen und Zwei Sachen fallen beim ersten Blättern im Buch geht dann zu komplexeren Themen über wie Fül- Jochen Schnelle (Webseite) ist auf: Zum einen ist es ziemlich dünn, gerade mal lung mit Farbverläufen, Clipping, Compositing bis bei der Beschäftigung mit den 105 Seiten umfasst das Werk. Zum anderen hat hin zur Manipulation von einzelnen Pixeln. Neuerungen in HTML5 auf das Canvas-Element gestoßen und per Buchinformationen Die API-Referenz listet dann nochmals alle Ele- Zufall in einer Bücherei auf das Buch. Titel Canvas – kurz & gut mente alphabetisch auf, inklusive einer Beschrei- Dieses hat ihm geholfen, die Möglich- Autor David Flanagan bung der jeweiligen Optionen. keiten des Canvas kennenzulernen. Verlag O’Reilly Auch wenn das Buch kurz ist – es ist vollständig. Umfang 105 Seiten Das Tutorial ist zwar kompakt geschrieben, aber ISBN 978-3-89721-597-9 trotzdem durchgehend sehr verständlich. Beim Preis 9,90 Euro Lesen entsteht nie das Gefühl, dass der Autor Diesen Artikel kommentieren

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 48 REZENSION

Rezension: NetBeans Platform 7 – Das umfassende Handbuch von Nico Maikowski

as umfassende Handbuch zu Net- wird es nicht bleiben und so findet der Leser auch ses eingegangen; die hauseigene JavaDB oder Beans Platform 7 bietet zu Beginn einen Blick zu IntelliJ IDEA. MySQL inklusive der Möglichkeiten diese mit Per- D einen Überblick über NetBeans selbst, sistenzframeworks einfach anzusprechen. Abge- wobei Einführung und Erstellung eines Rich- Der Aufbau rundet wird dies durch Kapitel zu einfachen Web Clients in Java parallel behandelt werden. Das Buch ist aufgeteilt in insgesamt acht Teile, Services bis hin zu den RESTful Web Services. Weiterführend wird das Konzept der Anwen- jeweils mit einzelnen Unterkapiteln. In Teil sechs ist der Rich Client sozusagen fertig dungsentwicklung des RichClients um zahl- In Teil eins stehen die Basics & Concepts an. Ge- und es wird mit Pack & Ship auf die Möglichkeiten reiche Konzepte und APIs fortgeführt, inklu- rade in den ersten Kapiteln zu Classloader, Mo- der Verbreitung und dem Update inklusive Loka- sive der klassischen Schichten Datenbanken dulen etc. wird vielfach die passende Parallele zu lisierung eingegangen. und Servermöglichkeiten mit WebServices. NetBeans selbst gezogen. Hinzu kommen grund- Abgerundet wird das Gesamtbild mit den The- legende Programmierkonzepte eines RichClients Teil sieben ist betitelt mit Test & Tooling und men Packaging, Internationalisierung und er- wie zum Beispiel Logging oder die Data System schießt zumindest bei zweiterem teilweise über weiterter Toolunterstützung mit Maven und/ API. das Ziel hinaus, da hier unter anderem auf au- oder Eclipse. tomatisierte Builds mit Maven sowie der Mög- In Teil zwei steht das Look & Feel, sprich die Ent- lichkeit, die NetBeans-Platform-Anwendung auf Redaktioneller Hinweis: Wir danken dem Ver- wicklung einer Benutzeroberfläche, an. Es wer- zwei anderen Entwicklungsplattformen, Eclipse lag Galileo Computing für die Bereitstellung ei- den alle Bedienelemente durchgängig am eige- und IntelliJ IDEA, zu bearbeiten, eingegangen nes Rezensionsexemplares. nen Konzept von NetBeans erklärt und vermittelt. wird. Abgerundet wird der Teil mit Unittests und Die Untertitel In Teil drei wird die Verwendung der NetBeans Debugging in NetBeans. Das Buch hat drei weitere Untertitel auf dem Platform Standardmodule geschildert. Im Einzel- In Teil acht, dem letzten, steht dann der Teil Cover, welches es sich zu Recht verdient. Zum nen wird hier detailiert aufgezeigt, welche Net- mit dem einen, durchgängigen Beispiel, welches einen der offensichtliche Hinweis auf die „Ein- Beans für die Arbeit bereit hält und diese bei Be- einen Großteil der im Buch behandelten The- führung in die Grundlagen von NetBeans Plat- darf durch den Anwender erweitert werden kön- men und Grundlagen einbindet. Auch wenn nicht form 7“. Zum Zweiten eine klare Abgrenzung, nen. ob es eine allgemeine Einführung aller Mög- In Teil vier werden bisherige Grundelemente mit lichkeiten beinhaltet bzw. das tatsächlich defi- Buchinformationen Use & Extend erweitert. Es werden die Advanced nierte Ziel „Rich Clients entwerfen, entwickeln Titel NetBeans Platform 7 APIs der NetBeans Platform näher erläutert. Es und verteilen“. Der dritte Untertitel überrascht et- Autor Heiko Böck geht um die Palette, Task List, Quick Search und was für eine Buch über NetBeans Platform 7, Verlag Galileo Computing Auto Update Services APIs. da auch ein Abstecher unternommen wird, wie Umfang 670 Seiten man „NetBeans-Platform-Anwendungen in Eclip- In Teil fünf wird für den Rich Client die Schichtar- ISBN 978-3-8362-1731-6 Preis 49,90C se entwickeln“ kann. Bei diesem einen Abstecher chitektur geöffnet. Hier wird auf Server & Databa-

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 49 REZENSION mehr ganz aktuell, doch mit einem MP3-Manager rade notwendig, um die Zusammenhänge zu er- bzw. Player thematisch so gewählt, dass die kennen und diese sind meist unabhängig vonein- Autoreninformation meisten Aspekte des RichClients und von Net- ander. Erst ganz am Ende gibt es das eine Bei- Beans berücksichtigt werden können. spiel, welches alle Aspekte des RichClients mit Nico Maikowski entwickelt beruf- NetBeans abdeckt inkl. der passenden Erklärun- lich unter der NetBeans Platform Das Fazit gen mit den gewollten Zusammenhängen. in Version 6.9.1 und hat sich als Der Titel verspricht ein umfassendes Handbuch Vorbereitung auf einen kommenden und eine Einführung in die Grundlagen. Es lässt Was ein wenig fehlt, sind ein paar Java- Umstieg mit Hilfe des Buches über sich aber klar erkennen, dass bereits Grundla- Grundlagen, insbesondere der einfachen ver- Neuerungen der Platform 7 informiert. genwissen von der vorherigen Version NetBeans wendeten Design-Patterns, wie z. B. ein Single- und den eigenen Entwicklungshori- Platform 6 vorausgesetzt wird. Es wurde mehr für ton oder warum im Beispiel des MP3-Players auf zont im Bereich eines RichClients die kommenden Umsteiger geschrieben, so zu- einmal eine abstrakte Klasse gebildet wird. bzw. FatClients erweitert. mindestens mein Eindruck als Einsteiger. Trotz dieser kleinen Schnitzer ist das Buch eine Gut gelungen ist der Spagat der Beispiele. Jedes gute Einführung in die Entwicklung von Java Rich Thema enthält nur so viel Beispielmaterial wie ge- Clients mit Hilfe von NetBeans Platform 7. Diesen Artikel kommentieren

„Conditional Risk“ © by Randall Munroe (CC-BY-NC-2.5), http://xkcd.com/795

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 50 MAGAZIN

Veranstaltungskalender Messen Veranstaltung Ort Datum Eintritt Link Brandenburger Linux-Infotag Potsdam 06.11.2011 frei http://blit.org/2011 World Usability Day weltweit 10.11.2011 – http://www.worldusabilityday.org/de OpenRheinRuhr Oberhausen 12.11.-13.11.2011 5 EUR http://www.openrheinruhr.de/ KNF-Kongress Nürnberg 20.11.2011 – http://www.franken.de/veranstaltungen/ 13. LinuxDay Dornbirn 26.11.2011 frei http://linuxday.at/ (Alle Angaben ohne Gewähr!) 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 .

Vorschau freiesMagazin erscheint immer am ersten Sonntag eines Monats. Die Dezember-Ausgabe wird voraussichtlich am 4. Dezember unter anderem mit folgenden Themen veröffentlicht:

 Pardus 2011.2

 Rezension: LibreOffice – kurz & gut

 Rezension: X-Plane kompakt Es kann leider vorkommen, dass wir aus internen Gründen angekündigte Artikel verschieben müssen. Wir bitten dafür um Verständnis.

Konventionen An einigen Stellen benutzen wir Sonderzeichen mit einer bestimmten Bedeutung. Diese sind hier zusammengefasst: $: Shell-Prompt #: Prompt einer Root-Shell – Ubuntu-Nutzer können hier auch einfach in einer normalen Shell ein sudo vor die Befehle setzen. y: Kennzeichnet einen aus satztechnischen Gründen eingefügten Zeilenumbruch, der nicht eingegeben werden soll. ~: Abkürzung für das eigene Benutzerverzeichnis /home/BENUTZERNAME : Kennzeichnet einen Link, der auf eine englischsprachige Seite führt. : Öffnet eine höher aufgelöste Version der Abbildung in einem Browserfenster.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 51 MAGAZIN

Impressum ISSN 1867-7991 freiesMagazin erscheint als PDF und HTML einmal monatlich. Erscheinungsdatum: 6. November 2011

Kontakt Redaktion E-Mail Dominik Honnef Thorsten Schmidt Postanschrift freiesMagazin Matthias Sitte c/o Dominik Wagenführ Dominik Wagenführ (Verantwortlicher Redakteur) Beethovenstr. 9/1 71277 Rutesheim Satz und Layout Webpräsenz http://www.freiesmagazin.de/ Andreas Breitbach Ralf Damaschke Andrej Giesbrecht Tobias Kempfer Autoren dieser Ausgabe Nico Maikowski Ralph Pavenstädt Hans-Joachim Baader S. 3 Joachim Breitner S. 26 Korrektur Herbert Breunung S. 16 Daniel Braun Frank Brungräber Vicki Ebeling S. 39 Bastian Bührig Stefan Fangmeier Patrick Eigensatz S. 20 Mathias Menzer Florian Rummler Patrick Hemmen S. 11 Karsten Schuldt Janis von Seggern Nico Maikowski S. 49 Stephan Walter Toni Zimmer Mathias Menzer S. 14 Michael Niedermair S. 46 Veranstaltungen Jochen Schnelle S. 48 Ronny Fischer Sebastian Seitz S. 44 Dominik Wagenführ S. 36, S. 39 Logo-Design Arne Weißendorn S. 28 Arne Weinberg (GNU FDL)

Dieses Magazin wurde mit LATEX erstellt. Mit vollem Namen gekennzeichnete Beiträge geben nicht notwendigerweise die Meinung der Redaktion wieder. Wenn Sie freiesMagazin ausdrucken möchten, dann denken Sie bitte an die Umwelt und drucken Sie nur im Notfall. Die Bäume werden es Ihnen danken. ;-)

Soweit nicht anders angegeben, stehen alle Artikel, Beiträge und Bilder in freiesMagazin unter der Creative-Commons-Lizenz CC-BY-SA 3.0 Unported. Das Copyright liegt beim jeweiligen Autor. freiesMagazin unterliegt als Gesamtwerk ebenso der Creative-Commons-Lizenz CC-BY-SA 3.0 Unported mit Ausnahme der Inhalte, die unter einer anderen Lizenz hierin veröffentlicht werden. Das Copyright liegt bei Dominik Wagenführ. Es wird erlaubt, das Werk/die Werke unter den Bestimmungen der Creative-Commons-Lizenz zu kopieren, zu verteilen und/oder zu modifizieren. Das freiesMagazin-Logo wurde von Arne Weinberg erstellt und unterliegt der GFDL. Die xkcd-Comics stehen separat unter der Creative-Commons-Lizenz CC-BY-NC 2.5 Generic. Das Copyright liegt bei Randall Munroe.

© freiesMagazin CC-BY-SA 3.0 Ausgabe 11/2011 52