Editorial
Ein Wort ist ein Wort ist ein Wort . . .
. . . und weder Mann noch Frau, möchte man man sich duzt. Unsere interne Regelung sieht Inhalt
hinzufügen, liebe Leser. Vielen Dank für Ihre anstelle dessen ein eher förmliches Sie vor. Da-
zahlreichen Rückmeldungen (siehe „Leserbriefe“ für haben wir unsere Gründe, auch wenn die- Linux allgemein
auf Seite 56) auf unsere Frage nach der Ver- se sicher weder aus Beton noch für die Ewig- Grundbegriffe der Virtualisierung S. 4
wendung einer geschlechterneutralen Sprache in keit sind. Dennoch stellen wir uns und Ihnen die Gefahren von Fremdquellen S. 9
freiesMagazin. Frage: Wie stehen Sie dazu, liebe Leser, bevor- Der September im Kernelrückblick S. 11
zugen Sie in (deutschsprachigen) Open-Source-
Rückblende: Aufgrund einer Leseranfrage hatten Projekten ein lapidares Du oder ein förmliches Anleitungen
wir in freiesMagazin 09/2009 [1] die Frage in Sie? Java, Teil 1 – Einführung S. 13
den Raum gestellt, ob Sie, liebe Leser – und na- Ordnung ins Chaos mit Org-Mode S. 18
türlich auch Leserinnen – die Verwendung einer Mit Ihnen in die Tiefe gehen
so genannten „geschlechterneutralen“ Sprache Oft liest man nach einer Veröffentlichung von Software
in freiesMagazin begrüßen würden oder eben freiesMagazin in zahlreichen Kommentaren im Kurztipp: Suchen und Finden mit Vim S. 26
nicht. Nun, Ihren Leserbriefen ist deutlich zu ent- Internet, dass das Magazin in Zukunft eher Arti- grep – Eine kleine Einführung S. 28
nehmen, dass wir in freiesMagazin so fortfahren kel über speziellere Themen veröffentlichen soll,
sollen wie bisher, heißt: Wir verzichten auch in die über Distributionstest und andere, schon häu- Hardware
Zukunft auf die „geschlechterneutrale“ Sprache fig beschriebene Themen hinausgehen. Offenge- Von der Schaltung zur Platine mit EAGLE S. 30
und schreiben, wie Sie es von uns gewohnt sind. standen: Das ist ein guter Vorschlag – die Um-
Vielen Dank an dieser Stelle auch an die Le- setzung liegt aber zum großen Teil bei den Au- Community
ser, die uns den Artikel „Sprachfeminismus in der toren. Und dazu laden wir jeden ein! Sollten Sie 41. DANTE-Mitgliedertagung in Esslingen S. 39
Sackgasse“ [2] vorgeschlagen haben. selten genutzte Programme zu Ihren Lieblingsan-
wendungen zählen, wie beispielsweise einige Le- Magazin
Siezt Du noch oder Duzen Sie schon?
ser des Ubuntublog.ch [3] von Roman Hanhart, Editorial S. 2
Doch damit nicht genug, denn schon sehen wir und wollten Sie schon immer der Welt Ihr Wissen Erklärungen zum zweiten Programmier- S. 42
uns mit der nächsten Leseranfrage konfrontiert. und Ihre Begeisterung darüber mitteilen, dann wettbewerb
Nicht, dass Sie uns falsch vestehen, wir lieben würden wir uns über einen Artikel von Ihnen sehr Die GUI zum Programmierwettbewerb S. 51
Leseranfragen, denn Ihre Aufmerksamkeit ist ein freuen! FAQ zum Programmierwettbewerb S. 53
wichtiger Grund für unsere Existenz – für die
Leserbriefe S. 56
von freiesMagazin, versteht sich. Worum geht Schreiben Sie uns einfach eine E-Mail an
Veranstaltungen S. 60
es? Ein Leser ist der Meinung, dass es zum gu- und teilen Sie uns
Impressum S. 61
ten Ton in Open-Source-Projekten gehöre, wenn Ihren Artikelvorschlag mit.
Vielen Dank auch an dieser Stelle an die Auto- Lesern (wenn Sie denn die Webseite regelmä- drei Kategorien ist mit jeweils einem Buchgut-
ren, die dem Aufruf in der letzten Ausgabe nach ßig besuchen oder den RSS-Feed lesen) inzwi- schein in Höhe von 10, 20 und 30 Euro dotiert.
mehr Beteiligung gefolgt sind. Nicht umsonst ist schen schon klar sein: Gemeint war der Held Wer in der Kategorie 4 teilnimmt und die (nach
das Magazin diesen Monat wieder so umfang- unseres zweiten Programmierwettbewerbs, der unseren objektiven Bewertungskriterien) beste
reich, wie man es gewohnt ist. sich einsam durch eine lebensgefährliche Fabrik- grafische Oberfläche schreibt, erhält einen Buch-
halle kämpft. gutschein über 50 Euro.
Internet im Icon-Format
Die junge Firma embli.net hat sich als Ziel ge- Kurz zusammengefasst: Die Aufgabe im zwei- Alle ausführlichen Informationen zum Wettbe-
setzt, ausgewählte Webseiten auf Ihrem Por- ten freiesMagazin-Programmierwettbewerb ist werb finden Sie im Artikel „Erklärungen zum
tal zu kategorisieren und per Icon zu verlin- es, mit Hilfe einer selbstgeschriebenen KI einen zweiten Programmierwettbewerb“ auf Seite 42.
ken. Auch freiesMagazin zählt zu den Auser- Roboter durch eine Fabrikhalle zu einer Fahne Wir hoffen, dass sich auch dieses Mal wieder
wählten, was uns natürlich sehr freut. Sie finden zu steuern. Die Steuerung wird dabei durch das zahlreiche Programmierer finden, die Spaß an ei-
unsere Verlinkung neben vielen weiteren Open- gezielte Auswählen von Steuerkarten vorgenom- ner solchen Aufgabe haben, und wünschen allen
Source-Anwendungen auf der „Open Source men, die den Roboter vorwärts oder rückwärts Teilnehmern viel Erfolg bei der Bewältigung die-
und Freeware“-Seite von embli.net [4]. Da die fahren lassen bzw. ihn auf der Stelle drehen. Da- ser Aufgabe!
Icons zufällig platziert werden, muss man die mit es etwas spannender wird, gibt es in der Fa-
brik aber einige Elemente, die den Roboter durch Die Spiele sind also hiermit eröffnet und wir wün-
Seite gegebenenfalls neu laden, ehe man das
die Gegend schieben oder gar zerstören können. schen Ihnen viel Spaß mit der neuen Ausgabe.
freiesMagazin-Logo sieht.
Wenn man diese Möglichkeiten aber geschickt Ihre freiesMagazin-Redaktion
RSS-Feed für Kommentare bei der Kartenwahl ausnutzt, kommt man sogar
L INKS
Eine Neuerung auf freiesMagazin.de [5] soll schneller zum Ziel.
auch nicht verschwiegen werden: Ab sofort bie- Der Wettbewerb wird in vier Kategorien unterteilt, [1] http://www.freiesmagazin.de/20090906-
ten wir die Möglichkeit an, RSS-Feeds für Kom- septemberausgabe-erschienen
wobei die ersten drei eine bestimmte Schwierig-
mentare zu abonnieren. Damit wollen wir unse- keitsstufe vorgeben. Die vierte Kategorie richtet [2] http://www.bruehlmeier.info/sprachfeminismus.
ren Lesern einen besseren Überblick über ge- htm
sich an alle kreativen Programmierer. Obwohl es
schriebene Kommentare als auch die zeitnahe schon eine grafische Oberfläche für den Wettbe- [3] http://ubuntublog.ch/applikationen/exotische-
Information über neue Kommentare geben, letzt- werb gibt (siehe „Die GUI zum Programmierwett- applikationen-der-erste-zwischenbericht
endlich soll damit auch der Spaß am Kommentie- bewerb“ auf Seite 51), ist es natürlich schöner, [4] http://www.embli.net/index.php/opensource-
ren steigen. Wie immer ist der RSS-Feed über wenn es eine 3-D-Fabrikhalle gäbe, durch die freeware.html
das Icon in der URL-Zeile Ihres Browsers zu sich der Roboter bewegen kann. Hier sind also [5] http://www.freiesmagazin.de/
abonnieren. vor allem die Programmierer gefragt, die mit KI- [6] http://www.freiesmagazin.de/2009-09-05-
Programmierung nichts am Hut haben. ratespiel
Blecherne Roboter und Öltanks!
Die Auflösung unseres Rätsels [6] aus der letz- Als Ansporn gibt es wie beim letzten Wettbewerb
ten Ausgabe sollte den meisten freiesMagazin- etwas zu gewinnen. Der erste Platz der ersten Das Editorial kommentieren
angepasst werden, da diese in der virtuellen auf die Performance aus („Virtualisierungsover-
Umgebung bekannte Hardware vorfinden. Wäh- head“ für CPU-Befehle).
rend das Gastbetriebssystem denkt, auf physi-
kalische Geräte (wie zum Beispiel Netzwerkkar- Hardware-Assisted-Virtualisierungen
ten) zuzugreifen, sind diese jedoch nur virtuell Genau hier setzen Hardware-Assisted-
vorhanden. Wenn nun ein Gastbetriebssystem Virtualisierungen an. Bei diesen Lösungen über-
mit einem anderen Rechner kommunizieren will, nimmt die Hardware das Umsetzen der Befehle
so sendet es beispielsweise über seine virtuel- von „Power-Off-Hardware“ zu „Power-Off-VM“.
le Intel EPro1000-Netzwerkkarte Daten ins LAN. Dies hat zur Folge, dass die Virtualisierungs-
Diese Daten müssen nun von der Virtualisie- schicht sich nicht mehr so intensiv um die Be-
rungsschicht über die physikalische Netzwerkkar- fehle der virtuellen Maschinen kümmern muss.
te weitergeleitet werden („Virtualisierungsover- Die Technologie wird bei Intel-CPUs als Vander-
head“ für Ein- und Ausgabeoperationen). Reine pool Technology „Intel VT-x“ [4] bzw. bei AMD
als AMD-Virtualization „AMD-V“ [5] (früher Code- Vereinfachtes Schema der
Rechenoperationen werden direkt auf den physi-
name Pacifica) bezeichnet. In neueren Rechner- Betriebssystemvirtualisierung.
kalischen CPUs ausgeführt.
generationen wird dieses Prinzip nicht mehr nur von Microsoft-Virtualisierungslösungen (sprich
Die Problematik besteht hierbei darin, dass spe- für CPUs sondern auch für Ein- und Ausgabe- von Microsofts Hyper-V) verwendet werden dür-
zielle Befehle unterbunden werden müssen. Als Befehle verwendet (z. B. „Intel VT-d“). fen, wenn nicht explizit ein Vertrag zusätzlich
Beispiel sei das Ausschalten einer virtuellen Ma-
Paravirtualisierung mit Microsoft ausgehandelt wurde. Es ist davon
schine genannt. Um bei einem einfachen Mo-
auszugehen, dass Microsoft sich dies entspre-
dell zu bleiben, wird im Folgendem angenom- Als letzte Technologie in diesem Abschnitt ist
chend honorieren lässt. Um dieses Problem et-
men, dass hierfür das virtualisierte Betriebssys- die Paravirtualisierung zu nennen. Der Unter-
was zu mildern, wurden spezielle Treiber entwi-
tem den CPU-Befehl „Power-Off-Hardware“ aus- schied zu den bisher genannten Techniken ist,
ckelt, welche bei einem vollvirtualisierten Gast
führt. Würde dieser Befehl jedoch eins-zu-eins dass hierbei das Gastbetriebssystem angepasst
zumindest Teile paravirtualisiert betreiben kön-
vom Hypervisor an den physikalischen Rechner werden muss. Die Anpassung sorgt dafür, dass
nen (z. B. der paravirtualisierte SCSI-Treiber der
weitergeleitet werden, würde der komplette Ser- die virtuelle Maschine weiß, dass sie nicht auf
VMware Tools).
ver mit allen VMs ausgeschaltet werden – an- physikalischer Hardware läuft und somit direkt
statt einer einzelnen VM. Deshalb muss dieser den Befehl „Power-Off-VM“ ausführt. Deshalb er-
Befehl abgefangen und anders verarbeitet wer- zeugt Paravirtualisierung weniger Overhead mit
Anwendungsvirtualisierung
den – hier wird er durch den Befehl „Power-Off- dem Nachteil der nötigen Anpassung des Gas- Gehostete Vollvirtualisierung
VM“ ersetzt. Dies bedeutet, dass grundsätzlich tes. Dadurch war diese Technologie zuerst nur Die gehostete Vollvirtualisierung wird in diesem
sämtliche von virtuellen Maschinen ausgeführte Linux-Kernel basierten VMs vorenthalten. Mi- Artikel der Gruppe der Anwendungsvirtualisierun-
Befehle auf solche kritischen Kommandos hin un- crosoft hat mittlerweile auch für Windows Ser- gen zugeordnet, während sie ebenfalls der Be-
tersucht und bei Bedarf umgeschrieben werden ver 2008 solche Anpassungen entwickelt („En- triebssystemvirtualisierung zugeordnet werden
müssen. Dieser Vorgang wirkt sich entsprechend lightenments“ [6]), welche jedoch ausschließlich könnte. Da jedoch die Virtualisierungsschicht
nicht direkt auf der Hardware läuft, sondern viel- dass das Virtualisierungsprogramm nur noch ei- Anwendungsvirtualisierungen
mehr ein Basisbetriebssystem erforderlich ist, in- nes von vielen im Host-Betriebssystem ist und
nerhalb dessen die Virtualisierung als norma- entsprechend auch als solches behandelt wird. Eine verwandte Art sind die (für viele Anwender
le Anwendung läuft, wird sie diesen Abschnitt Des Weiteren ist nicht garantiert, dass ein für missverständlich) direkt als Anwendungsvirtua-
zugeordnet. Als bekannte Vertreter dieser Gat- Windows zertifizierter Treiber auch mit sämtli- lisierungen betitelten Lösungen. Linux-Benutzer
tung wären unter anderem VirtualBox [7], Micro- chen auf Windows ausführbaren Virtualisierungs- kennen ein ähnliches Verfahren seit Jahren. Ge-
soft VirtualPC [8] und VMware Server [9]/Work- lösungen fehlerfrei funktioniert, während die Her- meint ist eine chroot-Umgebung [14]. Hierbei
station [10] zu nennen. Die Vorteile liegen auf steller von Hypervisor-Produkten ihre Treiber ge- wird eine Anwendung in einer vom eigentli-
der Hand: Es ist nicht mehr die Virtualisie- nau für diesen Anwendungsfall testen. chen Betriebssystem abgekoppelten Umgebung
rungsschicht für das Ansprechen der physika- („Sandbox“) ausgeführt. Die Technologien gehen
lischen Hardware verantwortlich, sondern das hierbei heutzutage jedoch weiter und spiegeln
Terminal-Server eher das Verhalten von UnionFS [15] wieder.
zu Grunde liegende Betriebssystem (z. B. Linux,
Die wohl bekannteste Art der Anwendungsvirtua- Die Produkte der führenden Hersteller nennen
Windows, Mac OS X). Somit müssen keine ei-
lisierungen sind Terminal-Server. Hierbei werden sich VMware ThinApp [16], Citrix XenApp Stre-
genen Treiber entwickelt werden. Beispielswei-
nicht verschiedene Betriebssystem-Instanzen aming [17] und Microsoft App-V [18]. Alle beru-
se unterstützt VMware ESX-Server 4 nur eine
parallel auf einem Rechner ausgeführt, sondern hen auf dem Prinzip, dass ein Programm denkt,
begrenzte Anzahl an Netzwerkkarten [11], wäh-
nur parallele Sitzungen mehrere Nutzer inner- es laufe ungehindert im Betriebssystem, wäh-
rend die Lösung mit VMware Server sozusa-
halb eines Betriebssystems. Unter Windows wä- rend in Wirklichkeit jedoch sämtliche Lese- und
gen alle von Linux und Windows unterstützten
ren Microsofts Terminal Services [12] und Citrix Schreiboperationen abgefangen und bei Bedarf
Geräte verwenden kann. Auch Citrix XenServer,
XenApp [13] zu nennen, während Linux mit ei- umgebogen werden können. Einem Programm
welches auf einem Linux-Kernel basiert und so-
ner Vielzahl von Lösungen aufwarten kann. Dies kann somit simuliert werden, dass es z. B. Da-
mit theoretisch sämtliche Linux-Treiber verwen-
liegt höchstwahrscheinlich daran, dass Linux ten von C:\temp nach D:\temp kopieren kann.
den könnte, unterstützt nur einen Teil derer. Der
schon immer als Mehrbenutzer-System entwi- In Wirklichkeit existieren jedoch die Ordner nicht
Hauptnachteil von Hosted-Lösungen ist jedoch,
ckelt wurde. So können bereits die Standard- einmal im Dateisystem sondern nur innerhalb
Desktop-Manager (kdm, gdm) über XDMCP Sit- der virtualisierten Anwendungsumgebung. Unter
zungen für Remote-Benutzer bereitstellen. Um Linux kann dies mit UnionFS abgebildet werden.
Anwendungen in einer Mehrbenutzer-Umgebung
voneinander abzuschotten, wird normalerwei-
se auf Home-Verzeichnissen und Variablen ge-
setzt. Dabei liegen die Programmdaten nur
einmal vor (z. B. C:\Program Files\... bei
Windows bzw. /usr/bin bei Linux), während
Aus Sicht der start.exe existiert die Datei für das Speichern der Dokumente eine Varia-
C:\Windows\setup.ini, aus Sicht der ble %HOMEPATH% (z. B. C:\Users\admin\) bzw.
C:\Program.exe nicht. $HOME (z. B. /home/admin/) verwendet wird. Funktionsweise von UnionFS.
Hierbei kann beispielsweise auf einer Read-Only- der virtuellen Desktop-VMs wurden VMware
CD-Rom ein schreibbares Dateisystem simuliert View [20] und Citrix Xen-
werden, indem die Schreiboperationen entweder Desktop [21] entwickelt.
auf eine Festplattenpartition oder direkt in den Ar- Einen entscheidenden
beitsspeicher umgeleitet werden. Nachteil teilen sich je-
doch alle Virtualisie-
Desktopvirtualisierungen
rungslösungen, die für
Als Desktopvirtualisierung wird normalerweise Anwendungsvirtualisierungslösungen in der Übersicht. die (Client-)Benutzer-In-
die Virtualisierung von Client-Betriebssystem be-
Vorteile sind hierbei, dass sämtliche Server- teraktion ausgelegt sind: die Grafikkartenperfor-
zeichnet. Das heißt ein Windows XP läuft nicht
und Client-Betriebssysteme an einem zentra- mance. Bei einem physikalischen Client-PC ist
mehr am Arbeitsplatz-Rechner sondern inner-
len Ort betrieben werden können (z. B. VMware die Grafikkarte direkt mit dem Monitor verbunden,
halb einer virtuellen Server-Infrastruktur (ESX,
vSphere-Umgebung im Serveraum). Somit ist während bei einer Client-VM die Daten von der
XenServer, Hyper-V). Die Benutzer verwenden
eine zentrale Datenhaltung mit verbesserten virtuellen Grafikkarte im Serverraum erst über
entweder einen Terminal-Services-Client oder di-
Backup-, Performance- oder Kostenersparnis- das Netzwerk zur lokalen Grafikkarte und letzt-
rekt einen ThinClient mit Hilfe dessen sie die vir-
Möglichkeiten gegeben. Für die Verwaltung lich zum Monitor übertragen werden müssen.
tuellen Clients steuern können.
Auszug von Virtualisierungslösungen
VMware Citrix Microsoft OpenSource
Vollvirtualisierung ESX3, ESXi3 – – Bochs, Qemu etc.
Hardware-Assisted- ESX, ESXi, VMware Server, XenServer im Vollvirtualisierungs- Hyper-V im Vollvirtualisierungsmo- Xen und KVM (+Derivate) im Vollvir-
Vollvirtualisierung VMware Workstation, .. modus dus tualisierungsmodus
Paravirtualisierung ESX + ESXi für Linux und spe- XenServer im Paravirtualisierungs- Hyper-V im Paravirtualisierungsmo- Xen und KVM (+Derivate)im Para-
zielle Treiber modus für Linux und spezielle Trei- dus für Win2k8 und spezielle Trei- virtualisierungsmodus für Linux
ber ber für z. B. Win2k3
Hosted-Virtualisierung VMware Server, VMware – VirtualPC, XP-Mode in Windows7 HXEN (Hosted Xen), VirtualBox
Workstation, VMware Fusion OSE etc.
Terminal-Server – XenApp Microsoft Terminal-Services XDMCP, LTSP,
FreeNX,
Desktopvirtualisierung VMware View XenDesktop –1 unbekannt
Anwendungsvirtualisierung ThinApp XenApp Streaming Microsoft Desktop Virtualization chroot, unionfs etc.
(SCCM + App-V)
Client-PC-Betriebssystem- VMware CVP22 XenClient2 – –
virtualisierung
1
: Wie bei Microsoft nachzulesen ist [19], gibt es auch eine Microsoft Virtual Desktop Infrastructure. Dahinter verbirgt sich jedoch nach meinem Wissensstand nur das Lizenzmodell,
Vista in einer virtuellen Umgebung betreiben zu dürfen, und kein reales Produkt seitens Microsoft.
2
: Bisher nur angekündigt, noch nicht verfügbar
remdpakete und -quellen gelten in den wird, welches bei einem Upgrade der Distribution exakt die gleiche Version und exakt die gleichen
Beispiel: Aurorae
Als fiktives Beispiel dient die KDE-
Dateien.
Nun gibt es immer noch Anwender, welche das garantiert, dass eine Dekoration, geschrieben ge- Fazit
Paket aus dem PPA verwenden. Die Installation gen Version X der Klasse, mit Version X+1 funk-
Dieser Artikel zeigt, wie leicht ein einziges Pa-
liegt mittlerweile neun Monate zurück. Die Ak- tionieren wird. Den Entwicklern ist dieses Pro-
ket aus einer Fremdquelle bei einem Update
tualisierung des Pakets kde-window-manager blem bewusst und die Klasse ist eigentlich nur
das System „zerstören“ kann. Das Problem muss
wird fehlschlagen, da es Dateien enthält, wel- für Dekorationen gedacht, welche mit KWin ver-
nicht einmal beim ersten Upgrade auftreten, son-
che schon in einem anderen Paket enthalten öffentlicht werden und immer direkt an die aktuel-
dern kann durchaus mehrere Versionen spä-
sind. Das Update wird nicht fertig ausgeführt, le Version angepasst werden. Es wird also ange-
ter erst erscheinen. Die Verbindung mit einem
der Anwender versteht zwar die Fehlermeldung nommen, dass Dekorationen für 4.3 nur mit 4.3
Fremdpaket herzustellen, welches man vor Mo-
nicht, hat aber gehört, dass man in so einem Fall betrieben werden, Dekorationen für 4.4 nur mit
naten oder Jahren installiert hat, kann durchaus
über die Konsole das Upgrade beenden kann. Er 4.4. Da Aurorae sich in KDE befindet, kann diese
schwierig sein. Die Fehlersuche wird für einen
macht auch den obligatorischen Neustart, mel- Annahme als korrekt angesehen werden. Durch
Laien fast unmöglich.
det sich an, sieht den Desktop laden und kann das fehlgeschlagene Update ist eine Verletzung
plötzlich nichts mehr anklicken. Ein Fenster wur- der Annahme aufgetreten. Fremdpakete sollten daher immer mit Vorsicht
de sogar noch geöffnet, es fehlen aber die De- benutzt werden.
Versucht man, den Fenstermanager manuell in
korationen und es lässt sich nicht verschieben.
der Konsole zu starten, so erhält man eine Feh-
Auch wenn versucht wird, das K-Menü zu öffnen,
lermeldung wie die folgende:
L INKS
passiert nichts. KRunner startet noch, lässt sich
aber nicht aktivieren. Der Rechner ist also prak- kwin: symbol - lookup error : /usr/lib/y [1] http://launchpad.net
tisch unbenutzbar. Es lässt sich nicht einmal ein libkdeinit4 \ _kwin .so: undefined symboly [2] https://build.opensuse.org
Browser öffnen, um im Forum nach Hilfe zu fra- : -ZTI26KDecorationFactoryUnstable [3] http://www.kde-look.org/content/show.php/
gen. Was ist passiert? Aurorae+Theme+Engine?content=107158
Das hier beschriebene Problem tritt in der Praxis
[4] http://www.heise.de/open/news/meldung/145576
Das Paket kde-window-manager konnte nicht bereits auf, da auf kde-look.org mehrere Dekora-
aktualisiert werden. Die Abhängigkeiten wur- tionen angeboten werden, welche die Unstable- [5] http://wiki.ubuntuusers.de/KWin#KWin-startet-
nicht-mehr
den jedoch aktualisiert. Darunter das Paket API von KWin verwenden. Die Unstable-API wur-
libkdecorations4. Dieses stellt die Schnittstelle de in KDE 4.2 eingeführt – mit dem Hinweis, dass
zwischen einer Fensterdekoration und dem Fens- sie nur in 4.2 gilt und in 4.3 wurde sie verändert,
termanager dar. Die Schnittstelle liegt nun in der jedoch nicht entfernt. Es ist davon auszugehen, Autoreninformation
Version 4.4 vor, KWin und Aurorae in der Ver- dass die Entwickler in 4.4 erneut Veränderungen
Martin Gräßlin ist KDE-Workspace-
sion 4.3. Wie oben bereits erwähnt, ist Aurorae vornehmen werden. Der Artikel zu KWin im ubun-
Entwickler und unter anderem Autor
in der auf kde-look.org angebotenen Version nur tuusers Wiki hat einen eigenen Abschnitt zu dem
der Fensterdekoration Aurorae.
für KDE 4.3 gedacht. Dies liegt daran, dass Au- hier beschriebenen Problem [5]. Die aktuell vor-
rorae eine Klasse verwendet, die „KCommon- gegebene Lösung würde jedoch nicht funktionie-
DecorationUnstable“ heißt. KWin bietet auf diese ren, da vorausgesetzt wird , dass KWin und die
Klasse keine Binärkompatibilität an. Es ist nicht Bibliothek in der gleichen Version vorliegen. Diesen Artikel kommentieren
asis aller Distributionen ist der Linux- CUSE (Character Devices in Userspace) ist vier Threads auf einem Vier-Kern-System aus-
oder ungepflegte Treiber. „drivers/staging ist KEI- hergeht. Allerdings sieht Torvalds dies nicht als [4] http://www.heise.de/newsticker/meldung/145672
NE Mülldeponie für toten Code“ beklagte er so großes Problem, da die Stabilität des Kernels [5] http://www.heise.de/newsticker/meldung/145828
sich [10] und kündigte an, die nicht mehr ge- gut sei und Fehler rasch beseitigt würden. [6] http://userweb.kernel.org/~tj/ossp/
warteten Treiber wieder aus dem Kernel zu ent- [7] http://xkcd.com/619/
fernen. Traurig war dabei die Tatsache, dass Echtzeit-Kernel für Debian
[8] http://www.linux-magazin.de/NEWS/Con-Kolivas-
auch der erst kürzlich von Microsoft freigegebe- Pengutronix [14], Dienstleister für Embedded-
meldet-sich-mit-neuem-Scheduler-zurueck
ne Treiber für Hyper-V (siehe „Der Juli im Kernel- Systeme unter Linux, stellt seit kurzem vor-
[9] http://www.linux-magazin.de/NEWS/Ingo-Molnar-
Rückblick“, freiesMagazin 08/2009 [11]) davon kompilierte Echtzeit-Kernel für Debian zur Verfü-
testet-neuen-Brain-Fuck-Scheduler
betroffen war. Nachdem mit über 200 Patches gung [15]. Diese wurden mit PREEMPT_RT [16],
[10] http://lkml.org/lkml/2009/9/3/3
der Treiber in eine Form gebracht wurde, die die einer Echtzeit-Erweiterung für den Linux-Kernel,
modifiziert und sollen Anwendern, die diese [11] http://www.freiesmagazin.de/freiesMagazin-2009-
Aufnahme in 2.6.32 ermöglichen, sollte er schon 08
zu 2.6.33 wieder aus dem Kernel fliegen. Allein Funktionalität benötigen, das eigenhändige Kom-
pilieren des Kernels ersparen. Einen Wermuts- [12] http://lkml.org/lkml/2009/9/10/297
das Wiederauftauchen der Microsoft-Entwickler
tropfen gibt es allerdings: Die von Pengutronix [13] http://www.pro-linux.de/news/2009/14727.html
mit neuen Patches [12] nach dieser Ankündigung
bereitgestellten Kernel-Pakete basieren auf dem [14] http://www.pengutronix.de/index_de.html
könnte Hyper-V vor diesem Schicksal bewahren.
Für manche der 22 anderen Treiber auf Kroah- Vanilla-Kernel und enthalten nicht die Debian- [15] http://www.pro-linux.de/news/2009/14750.html
Hartmanns Abschussliste haben sich ebenfalls spezifischen Kernel-Patches. [16] http://rt.wiki.kernel.org/
Maintainer gefunden, den verbliebenen wird je- [17] http://lkml.org/lkml/2009/9/27/166
Kernel 2.6.32-rc1
doch der Rausschmiss blühen. [18] http://www.linux-magazin.de/NEWS/Kernel-2.6.
Fast drei Wochen nach Veröffentlichung von 32-geht-in-die-abschliessende-Testphase
2.6.31 beendete Torvalds das Zeitfenster, in wel-
Torvalds: „Linux ist aufgebläht“
chem Neuerungen in den nächsten Kernel aufge-
Einer Intel-Studie zufolge verliert der Linux- nommen werden [17]. Der überwiegende Anteil Autoreninformation
Kernel mit jeder Version etwa zwei Prozent an der Änderungen von 2.6.32-rc1 liegen im Bereich
Geschwindigkeit. Auf der in Portland stattfinden- der Treiber, gefolgt von Firmware und den Archi- Mathias Menzer wirft gerne einen
den LinuxCon äußerte Torvalds, dass er den Ker- tekturen, wobei bei letzteren die ARM-Architektur Blick auf die Kernel-Entwicklung, um
nel inzwischen für zu aufgebläht halte. Eine Lö- stark im Vordergrund steht [18]. mehr über die Funktion von Linux
sung dafür habe er jedoch nicht [13]. Tatsäch- zu erfahren und seine Mitmenschen
lich nimmt das Volumen des Kernel immer weiter L INKS mit seltsamen Begriffen und unver-
zu, wie auch die Studie „Who Writes Linux and [1] http://www.freiesmagazin.de/freiesMagazin-2009- ständlichen Abkürzungen verwirren
Who Supports It“ (siehe „Der August im Kernel- 09 zu können.
Rückblick“, freiesMagazin 09/2009 [1]) belegt. [2] http://ikhaya.ubuntuusers.de/2009/09/10/der-
Dies ist der stetig steigenden Anzahl an Funktio- kern-fuer-karmic-2-6-31-1673/
nen und Treibern geschuldet, die mit einer eben- [3] http://www.freiesmagazin.de/freiesMagazin-2009-
falls größer werdenden Entwicklergemeinde ein- 07 Diesen Artikel kommentieren
VM, JFC, Applet, Swing . . . Viele Begriffe auf eine ausgereifte Entwicklungsumgebung zu- besprochen, ebenso die Vorbereitung einer Ent-
Nun braucht man noch die notwendigen Biblio- Anschließend startet man das Programm mit außerhalb der Klasse aufgerufen werden kann,
theken, um Programme selbst kompilieren zu static besagt, dass die Methode direkt aus der
können. Zunächst muss man sich nun entschei- $ java MyClass Klasse aufgerufen wird (ohne Objekt), void legt
den, welche Version von Java man installieren schließlich fest, dass die Methode keinen Rück-
Hinweis: Die Endung .class wird nicht mit an-
möchte. Das Unternehmen Sun ist Urheber von gabewert hat. In den runden Klammern steht der
gegeben.
Java und stellt mittlerweile Versionen für Linux Parameter, der dieser Methode übergeben wird.
bereit, die zumindest unter der i386- und amd64- In diesem Falle ein Array (eine Art
class MyClass {
Architektur laufen. Man benötigt das JDK (Java von Liste) von Strings (Zeichenket-
public static void main( String [] args)
Development Kit), welches man nicht mit der JRE ten), auf die in der Methode unter
{
(Java Runtime Environment) verwechseln darf, dem Namen args (Argument) zu-
System .out. println (" Hello World ");
welche nur das Ausführen von Java-Programmen gegriffen werden kann.
}
ermöglicht. Das offizielle Java von Sun soll zu-
// Dies ist ein einzeiliger Kommentar . Nun beginnt eingeschlossen von
künftig unter der GPL veröffentlicht werden, so-
dass man diesbezüglich wohl keine Bedenken den geschweiften Klammern der ei-
/* Dies ist ein Blockkommentar , gentliche Programmcode. Es wird
haben sollte. Man installiert das offizielle Java
der ueber mehrere Zeilen geht. die Methode println aufgerufen,
beispielsweise durch das Paket sun-java6-jdk.
*/ die unter dem Pfad System.out er-
Die bereits jetzt komplett freie Version Open-
} reichbar ist. Die Methode gibt ei-
JDK lässt sich in den gängigsten Distributionen
durch das Paket openjdk-6-jdk installieren. Soll- Listing 1: MyClass.java ne Zeichenkette mit Zeilenumbruch
ten dennoch außerordentliche Probleme auftre- auf der Konsole aus. Diese Zei-
ten, hilft Ubuntu-Nutzern die Wikiseite [7] in den Erklärung des Beispiels chenkette wird in runden Klammern übergeben.
meisten Fällen weiter. Die erste Zeile leitet die Klasse ein, den äußeren Am Ende jeder Anweisung muss ein Semikolon
Rahmen einer Java-Anwendung. Man beachte, stehen (auch wenn es die letzte ist).
Das erste Programm dass der Bezeichner der Klasse (hier MyClass) Schließlich wird die Klasse noch durch eine ge-
Das beliebte „Hello World“ ist in Java auf den ers- groß geschrieben wird. schweifte Klammer geschlossen. Das sind zu-
ten Blick komplex. Es wird jedoch jeder einzelne
Die zweite Zeile ist die Kopfzeile der Hauptme- nächst eine Menge Schlüsselwörter für eine so
Begriff genau erklärt, um niemandem mit Halb-
thode der Klasse, die immer main heißen muss. simple Funktionalität. Doch ist gerade diese strik-
wissen und Vermutungen zurückzulassen.
Eine Methode ist ein Unterprogramm. Hat sie te Strukturierung unter Java in vielen Situationen
Der Quelltext wird als Datei MyClass.java ge- einen Rückgabewert, spricht man von Funktio- vorteilhaft.
speichert. Danach bewegt man sich in der Kon- nen, ansonsten auch von Prozeduren. Sie ist der
sole in das entsprechende Verzeichnis und kom- Einstiegspunkt, an dem ein Programm mit der Was zeichnet Java aus?
piliert das Programm mit Ausführung beginnt. Die Kopfzeile der Hauptme- Wie am Beispiel erkennbar, ist Java sehr streng
thode muss in jedem Programm genau so aus- strukturiert. Dies ist nicht zu vergleichen mit Spra-
$ javac MyClass .java sehen. public besagt, dass die Methode von chen, die auch als Skripte ausgeführt werden
können wie zum Beispiel Python. Der Code wird Diese Klasse enthält nur eine Va- class Beispiel {
dadurch umfangreicher. Allerdings erkennt der riable, nämlich eine Zeichenket- public static void main( String [] args) {
Compiler Fehler im Code sehr präzise und zwingt te (String), die text heißt und
dem Entwickler einen sauberen und typsicheren den Inhalt Hallo Welt hat. Sie // Die Variable zahl1 wird deklariert .
Stil auf. Typsicherheit wird bei Java sehr groß ge- ist als static deklariert, damit sie int zahl1;
schrieben. Das bedeutet, dass zu jeder Zeit wäh- eine Eigenschaft der Klasse ist,
rend der Laufzeit des Programms gewährleistet nicht von einem Objekt (dazu spä- // zahl1 wird initialisiert es wurde
ist, dass eine Variable stets den richtigen Typ ter mehr). Diese Klasse lässt sich // ihr ein Wert zugewiesen .
hat und so verwendet werden kann, wie es die kompilieren, jedoch nicht ausfüh- zahl1 = 7;
Programmlogik erfordert. Es kann also nicht pas- ren. Es fehlt die main-Methode.
sieren, dass ein Programm anstandslos kompi- Doch die Klasse aus dem ersten // zahl2 wird in einer Anweisung
liert, obwohl eine Zeichenkette (String) durch ei- Beispiel kann nun auf die Varia- // deklariert und initialisiert .
ne ganze Zahl (Integer) dividiert wird (was eine ble der zweiten Klasse zugreifen. int zahl2 = 3;
nicht definierte Operation wäre). Man ergänze die Hauptmethode System .out. println (zahl1 + zahl2);
der Klasse MyClass durch die An- // Ausgabe : 10
Syntaktisches weisung System .out. println (zahl1 * zahl2);
Die wichtigsten Syntaxregeln sind bereits im Bei- // Ausgabe : 21
spiel erkennbar. Klassen, Methoden und Blö- System .out. printlny
System .out. println (zahl1 / zahl2);
cke (logisch zusammenhängende Anweisungen) ( MyClass2 .text);
// Ausgabe : 2
werden von geschweiften Klammern umschlos-
sen. Jede Anweisung wird mit einem Semikolon Sind beide Klassen (neu) kompi-
liert, wird auf der Konsole nun
// " double " ist genauer
beendet. Methoden und Variablen werden mit An- double zahl3 = 7.0;
gabe ihres Pfades aufgerufen. Unterverzeichnis- auch Hallo Welt ausgegeben:
se werden mit Punkten getrennt. System .out. println (zahl3 / zahl2);
$ javac MyClass .java
Fügt man eine weitere Klasse hinzu und legt sie $ javac MyClass2 .java // Ausgabe : 2.33333...
im gleichen Verzeichnis ab wie die andere Klas- $ java MyClass }
se, sind sich die Klassen untereinander bekannt. Hallo Welt }
derer Datentyp benutzt werden, wie zum Beispiel Bezeichner der Klasse ist gleichzeitig der Be- class Person {
double. zeichner des Typs der Objekte, die Instanzen die- public String vorname ;
ser Klasse sind. public String nachname ;
Klassen und Objekten
Objekte können in Java für nahezu alle greifba- Es wurde ein neuer Datentyp namens Person er- public void printName ()
ren Elemente des Programms stehen. Diese kön- zeugt. Man beachte, dass die beiden Variablen {
nen simpel (eine Zahl) oder komplex (eine Liste vorname und nachname nun nicht als static de- System .out. println ( vornamey
von Hashmaps, in denen offene Datenbankver- klariert werden. Das hat zur Folge, dass jedes +" "+ nachname );
bindungen auf die jeweiligen Nutzer abgebildet Objekt vom Typ Person nun die beiden Varia- }
werden) sein. Eine Tatsache muss allerdings be- blen „hat“. Jede Person hat ihre eigenen Varia-
blen. Somit sind die Variablen keine Eigenschaf- public static void main( Stringy
achtet werden: Primitive Datentypen sind in Ja-
ten der Klasse mehr, sondern von den Instanzen, [] args)
va keine Objekte. Dies sind beispielsweise int
die sie erzeugt. Die Methode printName ist eben- {
oder double (später dazu mehr). Jedes Objekt Person einePerson = new y
hat einen bestimmten Typ. Im Beispiel MyClass2 falls nicht statisch, sie wird also nur von Objek-
Person ();
ist die Variable text ein Objekt vom Typ String. ten aufgerufen. Die runden Klammern nach dem
einePerson . vorname = "Hansy
Somit ist sichergestellt, dass ein Objekt nur so Bezeichner sagen aus, dass die Methode keinen
";
benutzt werden kann, wie es für seinen Typ defi- weiteren Parameter erwartet. Sie gibt den Vor-
einePerson . nachname = "y
niert ist. Ist für Objekte des Typs „Turnschuh“ bei- namen, gefolgt von einem Leerzeichen (Zeichen- Maier ";
spielsweise die Methode „volltanken“ nicht defi- ketten werden mit + verbunden), und dann den einePerson . printName ();
niert, obwohl sie im Code aufgerufen wird, würde Nachnamen auf der Konsole aus. }
der Compiler dies sofort erkennen. Das nächste Beispiel Person2.java erzeugt nun }
riablen durch Aufruf von printName mit der Per- Nun „ist“ jeder Mitarbeiter auch eine Person. Und L INKS
son einePerson auf der Konsole ausgegeben. alle Methoden die für eine Person definiert sind, [1] http://www.netbeans.org/
können auch von einem Mitarbeiter aufgerufen
Weiterführendes zu Klassen [2] http://www.eclipse.org/
werden. Umgekehrt ist das natürlich nicht der
Das Klassenkonzept kann sehr intuitive Program- [3] http://de.wikipedia.org/wiki/Swing_(Java)
Fall. Eine Person, die kein Mitarbeiter ist, hat
mierung ermöglichen. Es ist beispielsweise mög- [4] http://www.java.com/de/
die Variable personalnummer nicht. Der Compi-
lich, mit dem Schlüsselwort extends eine Klas- [5] http://gcc.gnu.org/java/
ler würde dies bemerken.
se aus einer anderen Klasse abzuleiten. Man [6] http://www.java.com/de/download/help/testvm.
spricht von Vererbung. Man könnte etwa eine Es kann jedoch auch zu sehr abstrakten Be- xml
Klasse Mitarbeiter erstellen, welche die Va- ziehungen zwischen den Klassen kommen, die [7] http://wiki.ubuntuusers.de/Java
riable personalnummer (deklariert als int, al- nicht unbedingt dem intuiven Verständnis ent-
so als ganze Zahl) enthält, und diese Klasse sprechen. Es ist beispielsweise möglich, dass ein
von Person ableiten. Jeder Mitarbeiter hätte da- Objekt eine Variable hat, die eine Liste ist, in dem Autoreninformation
mit automatisch auch die Variablen vorname und das Objekt selbst noch einmal enthalten ist. Der
nachname, sowie die Methode printName, ohne Raoul Falk programmiert Java und
Fantasie sind dort keine Grenzen gesetzt. Man
dass man dies noch einmal in den Code schrei- .NET an der Universität Duisburg-
denke nur an ein Kind, dass seinen Vater als Va-
ben muss. Die Syntax wäre: Essen.
riable hat, während der Vater auch seine Kinder
als Variablen hat.
class Mitarbeiter extends Person {
public int personalnummer ; Ausblick
} Diesen Artikel kommentieren
Im nächsten Teil der Serie wird die Grafikpro-
Listing 6: Mitarbeiter.java grammierung mit Java ausführlich beschrieben.
er Satz „Ich habe keine Zeit . . . “ ist die Den Autoren der Zeitmanagement-Bücher ist Andere Projekte haben es sich zum Ziel
man zu oft zwischen Tastatur und Maus hin und Dies ist der Link zur aktuellen stabilen Version [4]. Nun sollte Emacs den Buffer für diese Datei in
her wechseln muss. Org-Mode beschränkt sich Man speichert dieses Archiv in einem Ordner den Org-Mode umschalten. Das erkennt man an
auf die Bedienung via Tastatur und wenn man und entpackt es dort. Nach dem Wechsel in das dem „(Org)“ in der Statuszeile dieses Buffers. Au-
ihn täglich benutzt, dann hat man die notwendi- entstandene Verzeichnis (in der Konsole) kann ßerdem gibt es ein Menü „Org“, in dem man
gen Tastenkombinationen bald verinnerlicht. man mit den Punkt „Documentation » show version“ auf-
ruft. Dann sollte in der untersten Zeile von Emacs
Org-Mode bietet auch die Funktionalität eines $ make „Org-Mode version XXX“ erscheinen, wobei XXX
„Outliners“. Damit kann man große Aufgaben (chi- $ make install die jeweilige Version angibt.
nesisches Sprichwort: „Auch die längste Reise
beginnt mit dem ersten Schritt.“) in kleinere „Un- den Quellcode durch den Emacs-Lisp-Compiler Grundlegende Prinzipien
teraufgaben“ zerlegen, die dann nicht mehr so übersetzen und das Ergebnis danach installie- Org-Mode arbeitet mit beliebigen Dateien. Hat
bedrohlich aussehen und an deren Erledigung ren. der Dateiname die Endung .org, wird Emacs
man einen Projektfortschritt erkennen kann. beim Öffnen der Datei gleich den Org-Mode akti-
Aktivierung vieren. Man kann so z. B. berufliche Aktionslisten
Da in Org-Mode alles Text ist, kann man ihn von privaten Aktionslisten trennen und trotzdem
Um Org-Mode zu aktivieren, fügt man ans Ende
auch sehr schön zum Schreiben von Notizen zu beides in Org-Mode organisieren.
der Datei .emacs, die sich im Heimatverzeichnis
den einzelnen Aufgaben nutzen. Diese Notizen
des jeweiligen Benutzers befindet, folgende Zei- Ganz abstrakt betrachtet ist Org-Mode ein
können auch mit Zeitstempeln versehen werden,
len ein: „Outliner“, in dem
was letztlich einer lückenlosen Dokumentation
der Tätigkeiten dient. Abgeschlossene Aufgaben man Stichpunkte
(add -to -list ’auto -mode - alist ’("\\. org \\ ’" . org -mode))
können auch sehr einfach in anderen Dateien ar- hierarchisch glie-
(global -set -key "\C-cl" ’org -store -link)
chiviert werden. So kann man diese Archive als (global -set -key "\C-ca" ’org - agenda ) dern kann. Diese
„Gedächtniserweiterung“ nutzen. (global -set -key "\C-cb" ’org - iswitchb ) Stichpunkte (oder im
Org-Mode-Sprachge-
Org-Mode installieren Listing 1: .emacs brauch „Kopfzeilen“
Org-Mode ist ein Emacs-Mode und da- genannt) beginnen immer mit einem oder meh-
mit wahrscheinlich bereits in der Emacs- Die erste Zeile sorgt dafür, dass Dateien mit der reren „Sternchen“. Die Anzahl der Sternchen
Standardinstallation der verwendeten Linux- Endung .org automatisch im Org-Mode geöff- bestimmt dabei die Hierachie-Ebene:
Distribution enthalten. Allerdings sollte man trotz net werden. Die anderen Zeilen definieren Org-
allem die neueste Version von der Org-Mode- Mode-spezifische „Hotkeys“. * erste Ebene
Webseite verwenden, da Org-Mode sehr häufig ** zweite Ebene
aktualisiert wird und ständig neue und nützliche Um zu kontrollieren, ob alles geklappt hat, startet *** dritte Ebene
Funktionen hinzukommen. man Emacs mit einem Dateinamen, der auf .org
endet (die Datei muss nicht existieren): Mit der Tab -Taste kann die Sichtbarkeit der Ebe-
Auf der Org-Mode-Webseite findet man unter nen geändert werden. Normalerweise sieht man
Download einen Link auf „gzipped tar archive“. $ emacs example .org nur die oberste, erste Ebene. Mit dem ersten
Drücken der Tab -Taste wird die erste Unterebe- Tags Schritt 1 – Kopf frei machen
ne geöffnet, mit einem zweiten Drücken rekursiv Das nächste Konzept von Org-Mode heißt „Tags“. Um einen Artikel zu schreiben, braucht man
alle Unterebenen und mit einem dritten Drücken Damit kann man nochmals für Kopfzeilen be- einen klaren Kopf. Sinnvoll ist es also, sich vor-
wird wieder nur die erste Ebene angezeigt. stimmte Begriffe (Tags) vergeben. Später kann her einige Stichworte zum Aufbau des Artikels
man dann seine Org-Mode-Datei nach diesen zu notieren. Am Beispiel des Artikelschreibens
ToDo-Listen Tags filtern lassen. Was man hier verwendet bedeutet das, die grobe Struktur des Artikels
Ein weiteres wichtiges Konzept sind die TODO- bleibt der eigenen Kreativität überlassen. Ei- in Org-Mode zu modellieren und Org-Mode als
Schlüsselworte. Wenn die Kopfzeilen „Aktionen“ ne Möglichkeit wäre beispielsweise, den Begriff Stoffsammlung zu benutzen. Wichtig ist in jedem
beschreiben sollen, dann soll hier ein Schlüssel- PHONE für alle Aktionen zu verwenden, die mit ei- Fall, dass alles, was einem im Kopf herum spukt
wort stehen, das aussagt, was zu tun ist, oder ob nem Telefonanruf zu erledigen sind. Dann kann und was man aber nicht sofort umsetzen kann,
diese Aktion schon erledigt ist. Eine ein wenig an man später recht schnell die Liste der noch zu tä- aufgeschrieben wird, denn damit schützt man
David Allens „Getting Things Done“ angelehnte tigenden Anrufe erstellen. Eine Vorgabe für Tags sich vor dem Vergessen von Ideen, die genial wa-
Liste solcher Schlüsselworte kann so aussehen: kann man ebenso wie die Schlüsselworte am An- ren, aber leider wieder „weg“ sind.
fang der Org-Mode-Datei definieren.
#+ TODO: TODO(t) NEXT(n) WAITING (w) y Also frisch ans Werk und einfach mal eine gro-
SOMEDAY (s) DELEGATED (g) PROJ(p) | y #TAGS: PHONE (o) URGENT (u) MAIL(m) be Struktur erstellt. Da Artikelschreiben eine Art
DONE(d) FORWARDED (w) CANCELLED (c) Workflow darstellt, erweitert man die Datei um
Will man eine Kopfzeile mit einem Tag ver- noch ein paar Schlüsselworte:
Eine solche Zeile (tatsächlich nur eine Zeile, al- sehen, reicht es, den Cursor in dieser Zei-
#+ TODO: IDEE(i) ENTWURF (e) FINAL (f)y
so ohne Umbruch) am Beginn einer Org-Mode- le zu positionieren und die Tastenkombination
| DONE(d) CANCELLED (c)
Datei definiert diese Schlüsselwörter für die Be- Strg + C Strg + C einzugeben. Sprich, zweimali-
nutzung in dieser Datei. Alles, was links vom | ges Drücken von Strg + C öffnet den Dialog, um Alle Abschnitte des Artikels beginnen mit einer
(Pipe-Symbol) steht, sind dabei Schlüsselworte die Tags für diese Kopfzeile auszuwählen. Idee, die dann zu einem ersten Entwurf ausfor-
für unerledigte Aktionen, alles, was rechts davon muliert, danach nochmals ein wenig „geschliffen“
steht, sind Schlüsselworte für erledigte Aktionen. Nach all dieser grauen Theorie wird es nun Zeit,
und letztlich einer „finalen Kontrolle“ unterzogen
Die Buchstaben in Klammern definieren dabei, den Org-Mode auch mal am Beispiel [5] einzuset-
wird. Danach ist dieser Teil entweder erledigt
mit welcher Taste dieses Schlüsselwort belegt ist, zen. Im Beispiel wird nun Org-Mode verwendet,
(DONE) oder man hat irgendwann die Idee doch
was wichtig ist, wenn sich später einmal der Sta- um die Aufgaben zu organisieren, die notwendig
wieder verworfen (CANCELLED).
tus einer solchen Aktion ändert. sind um einen Artikel über Org-Mode zu schrei-
ben. Nachdem die Idee zum Artikel in der Dis- Diese Zeile mit weiteren Schlüsselworten kann
Schreibt man nun in einer Kopfzeile beispielswei- kussion auf der Webseite von freiesMagazin [6] im Kopfbereich der Datei eingegeben und mit der
se * TODO, dann erkennt Org-Mode das Schlüs- entstand, war es nur konsequent, die Arbeit mit Tastenkombination Strg + C Strg + C (dies ist in
selwort und hebt es farblich hervor. Unerledigte Org-Mode zu organisieren. Dazu legt man eine Org-Mode sozusagen der Universalschlüssel) ak-
Aktionen sind mit roten Schlüsselwörtern verse- neue Org-Mode-Datei an oder erweitert eine be- tiviert werden. Diese Aktivierung muss nur erfol-
hen, erledigte mit grünen. stehende um die neuen Aufgaben. gen, wenn man das gerade erst getippt hat. Wird
eine Datei mit solchen Definitionen am Dateian- geben. Hier kann mittels Strg + Y die Adresse In der nächsten Ebene ist dann die eigentliche
fang geöffnet, aktiviert Org-Mode diese natürlich aus der Zwischenablage eingefügt werden. Da- Stoffsammlung zum Artikel vorhanden. Also al-
selbst. nach Return drücken, den Text zum Link einge- les was man berücksichtigen will. Da das Listing
ben und fertig. Von jetzt an kann man direkt aus während des Artikelschreibens entstand, sind ei-
Nun schreibt man eine Kopfzeile und etwas Text: Org-Mode heraus die Autorenrichtlinien von der nige Punkte schon von der „Idee“ zum „Entwurf“
Webseite abrufen. gereift. Die drei Punkte am Ende jeder Kopfzeile
* Freies Magazin :LINUX:
Wenn Emacs sauber signalisieren, dass es darunter noch was zu se-
- Artikel fuer Freies Magazin
konfiguriert ist, öffnet hen gibt, was aber in der aktuellen Ansicht aus-
- Autoren-Richtlinien (PDF)
das den Browser und geblendet ist.
:PROPERTIES:
dieser das Programm
:ARCHIVE: %s_freiesmagazin:: *** ENTWURF Linkliste [2/2]
zur PDF-Anzeige.
:END: - [X] Orgmode.org
** PROJ Artikel ueber orgmode schreiben In den nächsten Zeilen - [X] ThinkingRock GTD
DEADLINE: <2009-08-26 Mi> kann man wieder eine - [2009-08-05 Mi] Linkliste in
*** ENTWURF Literaturverzeichnis [5/5]... Besonderheit von Org- OpenOffice.org muss mit
*** ENTWURF Linkliste [2/2]... Mode sehen, die „Pro- Literaturverzeichnis
*** ENTWURF Warum orgmode... perties“. Da ist sozu- kombiniert werden.
*** ENTWURF Grundlegende Org-Mode Prinzipien... sagen eine Schublade,
*** IDEE Kopf frei machen... in der besondere Eigen- Hier wurde eine einfache „Checkliste“ angelegt,
*** IDEE Taegliche Nutzung... schaften definiert sind. die helfen soll, nichts zu vergessen. Die Kombi-
*** IDEE Review... Im Beispiel ist das der nation - [ ] definiert einen Punkt zum Abhaken.
Dateiname, in dem erledigte Aufgaben archiviert Auf der Kopfzeile definiert [ / ] einen Status-
Hier sind alle Aktivitäten für „Freies Magazin“ un- werden. %s steht für den Dateinamen der Org- zähler der Art „[erledigt/zu erledigen]“. [%] würde
ter einer Ebene-1 Kopfzeile zusammengefasst. Mode-Datei und alles, was später an Aktionen un- eine prozentuale Angabe zur Folge haben. Hier
Dieser Kopfzeile könnte man das Tag „LINUX“ terhalb der Kopfzeile „Freies Magazin“ archiviert sind 2 von 2 Punkten auf der Checkliste abge-
zuweisen. Darunter, hinter dem Bindestrich, ver- wird, landet in einer Datei, die als Suffix im Na- hakt, daher die Darstellung in Grün. Wäre noch
fasst man einen Kommentar, worum es hier geht, men _freiesmagazin enthält. ein Punkt offen, dann würde das auf der Kopf-
und setzt für die Zukunft gleich ein Link auf zeile in roter Farbe zu sehen sein. Das Abhaken
die Autorenrichtlinien. Ja, Org-Mode kann auch Die nächste Kopfzeile auf Ebene 2 ist einfach geschieht in der entsprechenden Zeile mit dem
Links. Diesen Link gab es in den Kommenta- als PROJ (Projekt) gekennzeichnet und dient erst Universalwerkzeug Strg + C Strg + C .
ren auf der Webseite [7], also kopiert man ein- mal nur der Gliederung. Redaktionsschluss für
fach diese Linkadresse, drückt im Org-Mode an die September-Ausgabe von freiesMagazin war Weiterhin gibt es eine Notiz mit Datumsstem-
der Stelle an der der Link eingefügt werden soll der 26. August, mit Strg + C Strg + D kann man pel. Hier ist einfach dokumentiert, warum der
Strg + C Strg + L und in der untersten Zeile des dann für dieses Projekt sehr einfach die Deadline Artikel in OpenOffice.org nun Linkliste und Lite-
Emacs-Fensters kann man die Zieladresse ein- definieren. raturverzeichnis vermischt. Den Datumsstempel
kann man einfach mit Strg + C Strg + Shift + 1 de. Das ist auch bekannt unter dem Schlagwort Aufgaben wann sinnvoll zu erledigen sind“ und
einfügen. Will man es ganz genau haben und „Cover-Your-Ass“-Security. Nutzung der „Agenda-Ansicht“.
auch die Uhrzeit hier aufnehmen, verwendet man
Die Org-Mode-Datei ist nun zum „externen Bevor die Agenda sinnvoll genutzt werden kann,
Strg + U Strg + C Strg + Shift + 1 .
Gedächtnis“ geworden, sie enthält alle Ideen muss die aktuelle Datei zu der Liste der zu
Im Gegensatz zu der Deadline-Definition hat und Konzepte und sollte daher auch einem beachtenden Dateien hinzugefügt werden. Dies
der Datumsstempel eckige Klammern. Der Un- regelmäßigen Backup-Zyklus unterworfen wer- geschieht über Strg + C AltGr + 8 . Danach wir
terschied wird später in der Agenda-Ansicht klar den. In dem Beispiel waren das jetzt zwar nur die Agenda-Ansicht über die Tastenkombinati-
werden, dort sind Datumsstempel mit spitzen die paar Zeilen zum Artikel schreiben, aber on Strg + C A aufgerufen. Darauf hin teilt sich
Klammern sichtbar, solche mit eckigen Klam- im wirklichen Leben kann so eine Org-Mode- das Emacs-Fenster und im unteren Bereich
mern hingegen unsichtbar. Datei schon ein paar hundert oder sogar ein sieht man ein Auswahlmenü. Mit der Taste T
bekommt man wieder eine Aufgabenliste.
Global list of TODO items of type: ALL
Available with ‘N r’: (0)ALL (1)TODO (2)NEXT (3)WAITING (4)SOMEDAY (5)DELEGATED Diese Ansicht kann nun auf bestimmte
(6)PROJ (7)DONE (8)FORWARDED (9)CANCELLED (10)IDEE Schlüsselworte eingegrenzt werden. So
(11)ENTWURF (12)FINAL (13)SKIPPED (14)COPIED kann man mit der Tastenkombination 1
privat: PROJ Artikel ueber Org-Mode schreiben :LINUX:: 0 R die Aufgabenliste auf alle Aufgaben
privat: ENTWURF Literaturverzeichnis [5/5] :LINUX:: mit dem Schlüsselwort „IDEE“ eingrenzen.
privat: ENTWURF Linkliste [2/2] :LINUX:: Oder, wenn man mal schnell nachsehen
privat: ENTWURF Warum orgmode :LINUX:: will, welche Aufgaben man an andere dele-
privat: ENTWURF Grundlegende Org-Mode Prinzipien :LINUX:: giert hat, reicht in dieser Ansicht 5 R und
privat: IDEE Kopf frei machen :LINUX:: schon erhält man die Liste aller delegierten
privat: IDEE Taegliche Nutzung :LINUX:: Aufgaben.
privat: IDEE Review :LINUX::
Mit der Taste Q wird diese Ansicht wieder
paar tausend Zeilen haben, abhängig davon, wie geschlossen. So richtig nützlich wird die Agenda-
Hier hat man also tatsächlich eine Art von Mikro-
intensiv man Org-Mode auch zum Notizen ma- Ansicht aber erst, wenn man sich einen Wochen-
Blog, in dem man sehr schnell irgendwelche
chen nutzt. oder Tagesplan damit generieren lässt. Aber wie
Erkenntnisse, Fortschritte oder auch Fehlschlä-
plant man Aufgaben in Org-Mode?
ge dokumentieren kann. Solche Aufzeichnun- Schritt 2 – Tägliche Nutzung
gen können gerade im Beruf sehr nützlich wer- Jetzt stellt sich für den Nutzer natürlich die Frage, Bislang ist nur die „Deadline“ bekannt, welche mit
den, sei es, um ein wenig in der Vergangenheit was er mit der langen Liste der zu erledigenden Strg + C Strg + D definiert wurde. Wenn man
zu wühlen, wenn man auf „bekannte Probleme“ Aufgaben anfangen soll. Irgendwie ist es ja nicht sich nun für einen bestimmten Tag eine Aufgabe
stößt, sei es, um deutlich dokumentieren zu kön- gerade motivierend, wenn man den Mount Ever- vornimmt, dann kann man diesen Plantermin mit-
nen, dass man nicht daran schuld ist, dass der est seiner unerledigten Aufgaben vor sich sieht. tels Strg + C Strg + S („Schedule“) definieren.
Großauftrag für 10 Millionen Euro verloren wur- Daher heißt der nächste Schritt: „Planen, welche Im Org-Mode-Kontext ist dieser Termin der Start
der Arbeiten an dieser Teilaufgabe. Mit Strg + C Wenn man weiß, dass Aufgaben eine gewisse wünschen konfigurierbar. In der Praxis kann das
A A ruft man einen Wochenplan auf. Zeit in Anspruch nehmen, kann man das auch so aussehen: Morgens im Büro wird als erstes
ein Tagesplan aufgerufen, der nur Aufgaben aus
Week-agenda (W33): der Datei work.org enthält (Privates macht man
Mon 10 August 2009 W33 schließlich daheim) und der auf den aktuellen
Die 11 August 2009 Tag beschränkt ist. Dann weiß man schon am
Mit 12 August 2009 Morgen, welche Aufgaben geplant sind, welche
privat: Sched. 4x: IDEE Kopf frei machen :LINUX:: vielleicht schon überfällig sind oder was im Ka-
privat: Scheduled: IDEE Taegliche Nutzung :LINUX:: lender steht, denn natürlich kann man bei den
privat: In 14 d.: PROJ Artikel ueber Org-Mode schreiben :LINUX:: „Scheduled“-Zeitstempeln auch die Uhrzeit mitan-
Don 13 August 2009 geben.
Fre 14 August 2009
Sam 15 August 2009 Eine andere selbst definierte Agenda-Ansicht
privat: Scheduled: IDEE Review :LINUX:: zeigt nur offene Aufgaben, die noch keinen Plan-
Son 16 August 2009 termin haben. Somit bekommt man schnell Über-
sicht, was noch zu planen ist. Das geht auch di-
in Org-Mode definieren. Wenn man für das Pro- rekt aus der Agenda-Ansicht mit Hilfe des Hot-
Wie man sieht, ist das Listing am 12. August jekt einen Zeitbereich definiert wie „<2009-08-07 keys Strg + C Strg + S .
entstanden, aus der Sicht also als „Heute“ zu Fr>-<2009-08-22 Sa>“, dann wird in der Agenda
bezeichnen, und wird kursiv und fett formatiert. für jeden dieser Tage ein Eintrag eingeblendet. Mit Org-Mode kann man auch hervorragend wie-
Man kann drei Einträge sehen (Hinweis: Diese derkehrende Aufgaben planen. Als Beispiel sei
Agenda-Ansicht wurde auf die Kopfzeile „Freies Mit 12 August 2009
Magazin“ und die darunter liegende Hierarchie privat: Sched. 4x: IDEE Kopf frei machen :LINUX::
eingeschränkt). Das privat: am Zeilenanfang privat: Scheduled: IDEE Taegliche Nutzung :LINUX::
ist ein Hinweis auf die Quelle, in diesem Fall die privat: (6/16): PROJ Artikel ueber Org-Mode schreiben :LINUX::
Datei privat.org. Die erste Zeile zeigt Sched. privat: In 14 d.: PROJ Artikel ueber Org-Mode schreiben :LINUX::
4x was letztlich bedeutet, dass vor vier Tagen Don 13 August 2009
die Arbeit an „Kopf frei machen“ begonnen hat.
Für den heutigen Termin steht ein Scheduled: Nun gibt es am heutigen 12. August einen Ein- hier die Planung einer regelmäßigen Reinigung
in grün und signalisiert, dass die Arbeit am Kapi- trag mit dem Hinweis (6/16), der besagt, dass der Geschirrspülmaschine genannt (Ja, die Din-
tel „Tägliche Nutzung“ geplant ist. Am 15. August nun 6 von 16 veranschlagten Tagen für das Pro- ger müssen auch hin und wieder gereinigt wer-
steht dann ein Kapitel über „Review“ auf dem jekt vergangen sind. den).
Plan. Und schließlich erinnert Org-Mode daran,
dass in 14 Tagen die Deadline für das Projekt „Ar- Die Agenda-Ansicht von Org-Mode ist extrem Die nächste Reinigung ist also für Samstag,
tikel über Org-Mode schreiben“ ansteht. flexibel einsetzbar und beliebig nach Anwender- den 15. August geplant. Das unscheinbare +12w
** TODO Spuelmaschine reinigen :RAINER: Aufgaben zum abgespeichert wurde und die mit einem einfa-
SCHEDULED: <2009-08-15 Sa +12w> Schreiben die- chen Link per Mausklick geöffnet werden kann.
- Siebe reinigen ses Artikels und Diese Checkliste enthält dann alles, was regel-
- Maschinenpflege auf hoechster Stufe durchlaufen lassen die neu hinzu- mäßig am Freitag kontrolliert und eventuell erle-
gekommene Spülmaschinenreinigung. Alle Mög- digt werden sollte.
hat es in sich. Wenn am Samstag die Reinigung
lichkeiten der Agenda-Ansicht hier aufzählen zu
erfolgt ist und der Status mit Strg + C Strg + T Dazu zählen beispielweise:
wollen, würde wohl ein Buch füllen, daher sei hier
auf DONE gesetzt wird, dann erhält diese Aufga-
nochmals auf die sehr gute Dokumentation von
be – falls gewünscht – einen Logbuch-Eintrag
Org-Mode verwiesen. Können Aktionen mit dem Schlüsselwort
für die Erledigung. Die Aufgabe verharrt aber im
SOMEDAY in den Status TODO oder gar NEXT
Status TODO und das Plandatum schaltet exakt Schritt 3 – Reviews wechseln? Sprich, wird es langsam Zeit, das
um die 12 Wochen weiter. Das bedeutet, dass
Eine der goldenen Regeln im Zeitmanagement was man sich für „irgendwann“ vorgenom-
Org-Mode in exakt 12 Wochen wieder daran er-
ist: „Zeitmanagement ohne regelmäßige Re- men hat, jetzt mal konkret anzugehen? Die
innern wird, dass eine Spülmaschinenreinigung
views ist kein Zeitmanagement“. Immerhin nutzt Vorgehensweise: Agenda-Ansicht über alle
ansteht.
man all das Zeitmanagement ja, um sich Aufga- Aufgaben, dann limitieren auf Schlüsselwort
ben und Ziele zu setzen und da sollte man hin SOMEDAY.
Diese Funktion ist extrem hilfreich, wenn es um
und wieder schon auch mal eine „Positionsbe- Gibt es irgendwelche Erkenntnisse zu
Dinge geht, die man gerne „vergisst“, also ange-
stimmung“ machen, um zu sehen, ob man noch DELEGATED-Aktionen? Hat sich derjenige, der
fangen von Haushaltsarbeiten bis hin zum Zahn-
auf Kurs ist oder nicht. mit der Erledigung beauftragt wurde, schon
arzt, den man ja auch hin und wieder besuchen
soll. gemeldet? Ist die Aktion abgeschlossen? Wie
Diese Reviews plant man natürlich auch wieder
oben, jetzt aber Agenda-Ansicht auf Schlüs-
mit Org-Mode. So kann man beispielsweise je-
Man kann im Org-Mode-Buffer auch auf Zeit- selwort DELEGATED limitieren.
den Freitag eine Aufgabe TODO mit dem Titel
stempel klicken und bekommt dann einen Tages- „Weekly review“ in der Aktionsliste haben, welche Gibt es Aufgaben ohne „Plantermin“? Können
plan für den betreffenden Tag (oder einen Mehr- dann automatisch bei Erledigung auf den nächs- einige dieser Aufgaben für die nächste Woche
tagesplan wenn man auf eine Bereichsdefinition ten Freitag vorgetragen wird. geplant werden? Hierzu kann man eine benut-
klickt). Ein Klick auf den Scheduled-Zeitstempel zerspezifische Agenda-Ansicht mit Einschrän-
in obigem Beispiel bringt dann eine Agenda- Als Hilfsmittel dient eine Checkliste, die un- kung auf Aufgaben ohne Plantermin erstellen
Ansicht zum Vorschein. Also die bekannten ter dem Dateinamen weeklyreview.org (siehe Org-Mode-Dokumentation [8]).
Brainstorming und Kopf wieder frei machen,
Day-agenda (W33): neue Ideen in Org-Mode eintragen.
Sam 15 August 2009
Überprüfen aller als URGENT markierten Auf-
privat: Scheduled: TODO Spuelmaschine reinigen :RAINER:
gaben. Hierzu benötigt man keine Agenda-
privat: Scheduled: IDEE Review :LINUX::
Ansicht, sondern einen „sparse tree“, in dem
privat: (9/16): PROJ Artikel ueber Org-Mode schreiben :LINUX::
die so gefilterten Aufgaben hervorgehoben
an trifft ihn auf vielen unixoiden Sys- durch die zu Ur-vi-Zeiten Mitte der 1970er Jah- Eine andere Hilfe ist das Buch „Linux“ des
W. sucht nach W und einem beliebigen Zei- (gültig für das ganze System) oder ~/.vimrc vornehmen, als so manch anderer Benutzer, der
chen (gültig nur für den aktuellen Benutzer) erfolgen. mit einem grafischen Editor unterwegs ist.
ˆW sucht nach W am Zeilenanfang Suchen und Ersetzen Voraussetzung dafür ist aber das ständige und
W$ sucht nach W am Zeilenende Hier nun einige Funktionen, wie man Text su- konsequente Benutzen des Editors. Am Besten
chen und ersetzen kann. Das Kommando, um macht man sich nebenher auf einem Stück Pa-
W[a-e] sucht W und einem Zeichen von a bis e zum Beispiel „abc“ durch „efg“ zu ersetzen, lau- pier eine Übersicht der gängigsten Befehle und
tet :%s/abc/efg. legt das neben die Tastatur. So gewöhnt man
Groß- und Kleinschreibung umgehen
Vim unterscheidet bei der Suche immer zwi- Um das Suchen und Ersetzen noch besser zu sich schneller an den Umgang und wird immer
schen Groß- und Kleinschreibung. Wenn man kontrollieren, bestehen darüber hinaus folgende vertrauter mit diesem Urgestein der Editoren.
dies nicht möchte, kann man das mit einem an- Möglichkeiten, die durch das Anfügen an das obi- Verwendete Printmedien:
gehängten \c umgehen. Das gilt anschließend ge Kommando erreicht werden:
nur für diese eine Suche. Damit es für alle weite- 1. „Linux“ (8. überarbeitete und erweitere
ren Suchen gilt, führt man das Kommando :set /g ohne Rückfrage werden alle Vorkommen
Auflage), Michael Kofler, Addison Wesley,
ignorecase aus. Die Eingabe screen \c sucht von „abc“ durch „efg“ ersetzt
ISBN: 978-3-8273-2478-8
also nach „screen“ und nach „Screen“. /gc mit Rückfrage werden alle Vorkommen von
„abc“ durch „efg“ ersetzt L INKS
Inkrementelle Suche
Das Kommando :set incsearch aktiviert die in- /gi ersetzt alle Vorkommen von „abc“ durch [1] http://de.wikipedia.org/wiki/Murphys_Gesetz
krementelle Suche. Dies ist sinnvoll, wenn man „efg“ ohne Groß- und Kleinschreibung zu be- [2] http://de.wikipedia.org/wiki/Vim
nach dem Beginn eines Wortes sucht. Hier wird rücksichtigen
[3] http://www.freiesmagazin.de/freiesMagazin-2008-
der Cursor schon während der Eingabe des Hinweis: Der ganze Ausdruck muss aneinander 08
Suchbegriffes an den ersten Übereinstimmungs- geschrieben werden: z. B. :%s/abc/efg/gi.
ort bewegt. Die Enter -Taste beendet diesen
Spuk, mit der Escape -Taste wird die Suche ab- Abspeichern und Verlassen Autoreninformation
gebrochen. Nach der Suche bleiben die Überein- Ganz am Schluss der Bearbeitung sollte man
stimmungen im Text markiert, bis man entweder nicht vergessen, die Datei abzuspeichern. Dazu Steve Klicek benutzt Linux seit Suse
eine neue Suche beginnt oder das Kommando einfach das Kommando :w absetzen. Dann ver- Linux 6.2, wobei z. Z. openSUSE
:nohlsearch eingibt. lässt man die Datei mit einem :q. Ein :wq erledigt seine erste Wahl ist. Den Editor Vim
dies in einem Schritt. schätzt er als zuverlässigen Editor für
Anmerkungen zum :set-Kommando seinen täglichen Umgang mit Linux.
Die Optionen, die mit :set gesetzt werden, gel- Fazit
ten nur für die aktuelle Vim-Sitzung. Sollen hin- Wer erst einmal den Vim-Editor in seinen Grund-
gegen die Einstellungen permanent gesetzt bzw. funktionen beherrscht, der kann zum Beispiel viel
nicht gesetzt sein, so muss dies in /etc/vimrc schneller Änderungen an Konfigurationsdateien Diesen Artikel kommentieren
nter praktisch jedem Unix, Linux und das Suchmuster umdrehen: --invert-match
U
deren Derivaten ist das Kommando- $ grep --line - number audio /etcy
und vieles mehr.
zeilenprogramm grep vorhanden. Es /group
dient der Textsuche und Filterung von Datei- Hierzu lohnt es sich, sich mit der Manpage von
grep auseinanderzusetzen und zu experimentie- die Ausgabe 22:audio:x:29:anon bedeuten,
en, dabei geht es zeilenweise vor. Es können
ren. dass das Wort audio in der Zeile 22 vorkommt.
einfache Wörter gesucht oder aber auch mit
Hilfe von regulären Ausdrücken [1] komplexe Dateiname
Suchen realisiert werden. Anwendung von grep In Kombination von Zeilennummer und der Aus-
Verwendung findet grep auch in vielen Skripten, gabe des Dateinamens lassen sich rekursiv auch
Varianten die beim Start des Betriebssystems ausgeführt ganze Verzeichnisstrukturen auf das gesuchte
Neben grep existieren noch weitere Varianten werden. Die praktische Anwendung im Alltag be- Ergebnis hin durchsuchen.
wie egrep oder fgrep. Diese verhalten sich wie steht in der Selektion relevanter Teile aus Pro-
grep und können auch mit der entsprechenden grammausgaben oder in der Filterung von Log- $ grep --with - filename --line -y
Option (-E bzw. -F) aufgerufen werden. Beim Dateien. number --recursive root /etc
Durchsuchen von komprimierten Dateien helfen
zgrep und bzgrep. Zählen mit grep liefert jedes Vorkommen der Zeichenkette root
Für Skripte ist es oft wichtig, Zustände des Sys- unter Angabe des Dateinamens und der Zeilen-
Aufruf von grep tems zu wissen. Beispielsweise kann man mit nummer.
Der Aufruf erfolgt nach dem Muster grep herausfinden, ob vom Kernel ein bestimm- Abgestürzter MPlayer
tes Dateisystem unterstützt wird. So liefert die fol- Das Beenden eines hängenden Prozesses erle-
$ grep [ Optionen ] Suchmuster [y
gende Zeile eine Zahl größer 0, wenn der gerade digt man mit kill. kill möchte als Parameter nicht
Datei ]
geladene Kernel dies unterstützt: den Namen des Programmes, das es beenden
Wird keine Datei angegeben, verwendet grep die soll, wissen, sondern die dazugehörige Prozess-
$ grep --count ext2 /proc/y
Standardeingabe. nummer, die das laufende Programm eindeutig
filesystems
identifiziert. Der Befehl ps liefert eine Auflistung
Optionen aller laufenden Prozesse. Diese Auflistung ist in
Die einzelnen Optionen von grep sind vielseitig. Zeilennummer
der Regel sehr unübersichtlich:
So kann grep Bei der Suche in größeren Skripten oder in Quell-
codedateien ist es von Interesse, zu wissen, $ ps aux
zählen: --count, an welcher Stelle das gesuchte Wort vorkommt.
Groß- und Kleinschreibung ignorieren: grep ist in der Lage, die Zeilennummer dazu aus- Hier kommt grep ins Spiel:
--ignore-case, zugeben, in der das gesuchte Wort steht. So wür-
Zeilennummern zurückgeben: --line-number, de bei folgender Eingabe $ ps aux | grep mplayer
ps aux gibt alle Prozesse aus. Die Ausgabe wird diesen Zeilen mit dem Vorkommen von WW auf Man kann sich die nochmalige Eingabe dieser
mit dem Pipe-Zeichen an grep übergeben und der Standardausgabe ausgegeben. Was man er- längeren Befehlszeichenfolgen ersparen, indem
auf die gesuchte Zeichenfolge gefiltert. reichen wollte, ist die Auflistung von Warnungen. man diese mit
Dies ist bei alleiniger Verwendung von grep je-
Die Ausgabe könnte in etwa so lauten: $ !518
doch einfacher und treffsicherer zu erreichen.
username 4057 2.3 2.8 67588 25504 tty1 S 17:06 1:54y ein weiteres Mal ausführt.
gmplayer /home/ username /Musik/xyz.mp4
username 5552 0.0 0.0 3204 768 pts /2 R+ 18:27 0:00y Weitere Informationen
grep mplayer Weitere Informationen sind auf der Homepage
des GNU-Projektes [2] zu finden. Ausführliche In-
Als Ergebnis wird nun auch grep selbst geliefert, $ grep -e "^( WW)" /var/log/Xorgy formationen zur Verwendung von grep sind im
da es mit der gesuchten Zeichenfolge als Para- .0. log Ubuntuusers-Wiki [3] und in der zu grep gehören-
meter aufgerufen wurde. Die gesuchte Informati- den Manpage nachzulesen.
on findet sich aber in diesem Fall in der ersten liefert unter Verwendung von regulären Aus-
Zeile. Nun weiß man, dass der MPlayer hier als drücken alle Zeilen der Datei, die mit (WW) be- L INKS
gmplayer die Prozessnummer 4057 trägt. Jetzt ginnen. Diese lassen sich auch kombinieren, so- [1] http://de.wikipedia.org/wiki/Regul%C3%A4rer_
kann dieser mit dass in einem Rutsch Fehlermeldungen und War- Ausdruck
nungen ausgegeben werden: [2] http://www.gnu.org/software/grep/
$ kill 4057
$ grep -e "^( WW)" -e "^( EE)" /y [3] http://wiki.ubuntuusers.de/Shell/grep
beendet werden. var/log/Xorg .0. logo
Probleme mit dem X-Server grep und history Autoreninformation
In vielen Foren trifft man Menschen, die cat in Nützlich machen kann sich grep auch in Kom-
Kombination mit grep einsetzen, um in einer Da- Philipp Walther hat seine ersten
bination mit history, wenn lange Befehlszeilen
tei eine spezifische Zeile zu finden. Dies ist häu- Linux-Erfahrungen mit SUSE-Linux
mehrmals eingeben werden müssen. So liefert
fig ein unnützer Umweg. So wird oft die Filterung gemacht. Es folgten einige Jahre der
der /var/log/Xorg.0.log mit Hilfe der Befehls- $ history | grep grep Linux-Abstinenz. Nach einer Zeit des
zeilenfolge Experimentierens mit verschiedenen
die bisherigen grep-Aufrufe des jeweiligen Benut- Distributionen ist er schließlich bei
$ cat /var/log/Xorg .0. log | y zers. Darunter der Aufruf aus dem vorherigen Debian GNU/Linux angekommen.
grep WW Beispiel.
vorgenommen. Dabei wird die Ausgabe von cat 518 grep -e "^( WW)" -e "^( EE)"y
der Datei Xorg.0.log in grep umgeleitet und von /var/log/Xorg .0. log Diesen Artikel kommentieren
Von der Schaltung zur fertigen Platine mit EAGLE von Marcel Jakobs
Strecke, auf der die Leitungen gleich verlaufen sind die anderen „Malwerkzeuge“ auch recht Man kann die Schaltung noch auf Plausibilität
sollen. Als Name gibt man dann einen Namen ge- praktisch. Um einen Text auf die Platine zu testen (Electrical Rule Check – Erc). Dabei wird
folgt von einer Art Array an, wie z. B. „PortA[0..7]“, schreiben, muss man das „Text“-Werkzeug in der geprüft, ob Kurzschlüsse existieren und alle be-
um acht Leitungen als Bus zusammen zu fassen. Boardansicht benutzen, dazu später mehr. nötigten Pins eines Bauteils angeschlossen sind.
Nun kann man die einzelnen Leitungen des Bus- Um diesen Test auszuführen, drückt man auf die
ses mit Pins von Bauteilen verbinden. Dazu wählt Beim Ziehen von Netzen und Bussen kann ein Schaltfläche „Erc“.
man das Werkzeug „Net“ aus und klickt damit auf Richtungswechsel der Leiterbahn durch einen
Beispiel
den Bus. Es erscheint ein Auswahlmenü mit allen Linksklick eingeleitet werden. Um eine Leitung
Als Beispiel soll nun die Schaltung entworfen
Netzen, die der Bus besitzt (in diesem Beispiel enden zu lassen, ohne an ein Bauteil angeschlos-
werden, die auch in „AVR-Mikrocontroller unter
„PortA0“ bis „PortA7“). Dann kann man das Netz sen zu sein, klickt man zweimal an die glei-
Linux“ (freiesMagazin 06/2009 [3]) gezeigt wur-
wie gewohnt mit dem Pin des Bauteils verbin- che Stelle. Netze können auch verzweigt werden,
de. Man startet EAGLE und legt über „File » New“
den. Natürlich geht es auch umgekehrt, und man wenn viele Bauteile mit einem Netz verbunden
ein neues Projekt an. Wenn man mit der rech-
kann ein Netz von einem Bauteil aus mit dem Bus werden (z. B. GND).
ten Maustaste auf das neue Projekt klickt, so
verbinden. In diesem Fall er-
kann man über „New“ den Menüpunkt „Schema-
scheint beim Klicken auf den Bus
tic“ auswählen.
auch hier das Auswahlmenü.
Nun klickt man auf das Icon „Add“ und scrollt
Manchmal kommt es vor, dass
im linken Fenster bis zum Paket atmel herun-
man zwei Netze miteinander ver-
ter. Dort klickt man auf das kleine Dreieck ne-
bindet (z. B. wenn man einen Wi-
ben „atmel“, damit sich das Paket öffnet. In die-
derstand mit GND verbindet). In
sem Paket sucht man nun „MEGA 16-P“, dies ist
diesem Fall fragt EAGLE nach,
ein ATMega16 im DIL-Gehäuse. Sobald das Bau-
ob man das wirklich tun möchte
teil ausgewählt ist sieht man auf der rechten Sei-
und welchen Namen das Gesamt-
te die Darstellung im Schema. Rechts daneben
netz haben soll. Im obigen Bei-
ist die Darstellung für das Boardlayout. Darunter
spiel würde man GND wählen.
sind weitere Informationen über das Bauteil an-
Sonstige Techniken gegeben. Nun klickt man auf „OK “ und platziert
Mit dem Werkzeug „Delete“ las- den Mikrocontroller mit der linken Maustaste ir-
sen sich Bauteile und Netze wie- gendwo in die Schaltung.
der löschen.
Als nächstes wird die LED ausgewählt. Nach-
Das Werkzeug „Text“ kann ge- dem man auf „Add“ geklickt hat, gibt man unten
nutzt werden, um Anmerkungen links in der Suche „led“ ein und drückt Return .
zu machen oder verschiedene In den Ergebnissen sucht man nun das Paket
Bereiche zu kennzeichnen. Dazu Ein neues Schema in EAGLE erstellen. led und darin das Paket LED. Dort gibt es eine
desto länger dauert der Routingvorgang, aber de- che gibt man diesem den Namen „GND“ und brücken wird eine Leitung auf einem anderen
sto höher ist auch die Wahrscheinlichkeit, dass drückt „Ratsnest“. Oft bleiben noch einige freie Layer verlegt, welches später nicht ausgedruckt
ein gutes Layout gefunden wird. Flächen übrig, die sich nicht mit Masse verbin- sondern durch die entsprechenden Kabel ersetzt
den lassen. In diesem Fall kann man ein zweites wird.
In diesem Beispiel gibt es nur wenige Verbindun- Polygon erstellen, dessen Namen man nicht ver-
gen, sodass der Autorouter alle Leitungen sehr ändert. Nach einem weiteren Ratsnest sollte es Um eine Drahtbrücke zu setzen, erstellt man zu-
schnell verlegen kann. Je nach Rechenleistung nun keine freien Flächen mehr geben. erst zwei Pads mit dem Tool „Via“. Nun wechselt
und Umfang der Platine kann der Routingvor- man auf das Werkzeug „Route“ und verbindet die
gang mehrere Minuten bis Stunden dauern. (Die- Die Masseflächen sollte man immer vor dem Pads mit den Leitungen, die mit der Drahtbrücke
ses Problem ist NP-Vollständig [4].) Trotzdem Routen einfügen, da dadurch das Routing oft ver- verbunden werden sollen. Nun wechselt man auf
schafft der Autorouter meist nicht alle Verbindun- einfacht wird. das Layer „1 TOP“. Dort kann man beide Pads
gen und man muss selbst einige Leitungen zie- miteinander verbinden.
hen. Das Routen von Hand erfordert etwas Erfah-
rung und man kann sich tagelang damit beschäf- Um zwei Masseflächen miteinander zu verbin-
tigen. Oft ist es leichter – wenn auch nicht immer den, gibt man den Pads den gleichen Namen wie
schön – Drahtbrücken zu nutzen. den Masseflächen: „GND“. Diese brauchen dann
nur noch auf Layer 1 verbunden werden.
Um eine Leitung (wieder) aufzutrennen, kann
Bohrungen
man das Werkzeug „Ripup“ nutzen. Wenn es
ausgewählt ist, klickt man auf die gewünsch- Möchte man die Platine später mit Schrauben fi-
te Leitung. Wenn man alle Leitungen entfernen xieren, ist es sinnvoll mit dem Werkzeug „Hole“
möchte (um ein neues Autorouting zu starten), die Bohrungen zu markieren. Die Größe der Lö-
klickt man erst auf „Ripup“ und dann auf „GO“. cher kann über die Einstellung „Drill“ bestimmt
werden.
Techniken
Text
Einige Anwendungsfälle, wie z. B. Hochfrequenz-
technik, benötigen Masseflächen an bestimm- Oft ist es sinnvoll, auch die Platine selbst zu be-
ten Stellen der Platine. Aber auch sonst ist es Erstellen einer Massefläche. schriften. Eine Versionsnummer z. B. hilft später
nicht verkehrt, jede freie Fläche als Kupferfläche ungemein, eine Platine mit Verbesserungen wie-
zu modellieren, da so beim Ätzvorgang weniger Drahtbrücken der zu erkennen. Wenn einem Jahre später noch-
Kupfer weg geätzt werden muss und das Ätzbad Eine Drahtbrücke ist ein Kabel, welches eine Lei- mal die Platine in die Hand fällt, ist es sicher auch
nicht so schnell verbraucht wird. tung ersetzt und normalerweise auf der Obersei- nützlich, wenn darauf steht, wofür sie ist (oder
te der Platine verlegt wird. Über Löcher mit dar- war). Auch zum Belichten ist eine Beschriftung
Um eine Massefläche zu erstellen, nutzt man das unter liegenden Kupferflächen (Pads) lassen sich praktisch, weil man dann am besten erkennt, ob
„Polygon“-Werkzeug und zieht ein Rechteck groß- Drahtbrücken auf die gleiche Weise wie ande- die Folie richtig herum aufliegt (und nicht spiegel-
zügig um die Platine herum. Für eine Masseflä- re Bauteile einlöten. Zum Modellieren von Draht- verkehrt).
Daher sollte man mit dem Werkzeug „Text“ ganz Einstellungen festlegen und testen Beispiel
zum Schluss auf einen freien Bereich der Platine Beim Platinenlayout hat man neben dem Erc Nachdem das Schema fertig ist, soll nun das
klicken und in das sich öffnende Fenster den Na- noch die Möglichkeit einzustellen und zu testen, Boardlayout erstellt werden. Dazu wechselt man
men und die Version der Platine angeben (man wie groß die Isolationsschichten, also die Zwi- mit dem Symbol „Board“ auf die Boardansicht.
kann natürlich auch noch andere Beschriftungen schenräume zwischen zwei Leiterbahnen, sein
machen). Die Schrift wird auf dem BOTTOM- sollen. Dieser Design Rule Check (Drc) wird mit Zuerst werden die Bauteile nun in die Fläche der
Layer gespiegelt angezeigt. Mit dem Werkzeug der Schaltfläche „Drc“ aufgerufen. Im sich öffnen- Platine platziert. Die Größe der Platine kann man
„Change“ kann man Schriftart und -größe verän- den Dialog kann man nun die Abstände zwischen dabei auch anpassen. Nun empfiehlt es sich ei-
dern. verschiedenen Typen wie z. B. Netzen oder Vias ne Massefläche zu definieren. Dazu klickt man
bestimmen. Nach einem Klick auf „Apply “ wird auf die Schaltfläche „Polygon“ und klickt im (oder
versucht, das Layout entsprechend anzupassen. gegen den) Uhrzeigersinn einmal an jede Ecke
Mit „Check “ kann man nun überprüfen lassen, ob der Platine, sodass ein Rechteck um die Plati-
dies überall möglich war. Gab es Probleme, so ne herum entsteht. Mit dem Werkzeug „Name“
öffnet sich ein Fenster, in dem alle Fehler aufge- kann man nun auf das Rechteck klicken und
listet werden. Der in diesem Fenster ausgewähl- ihm den Namen „GND“ geben. Danach drückt
te Fehler wird auch auf der Platine angezeigt, so- man einmal „Ratsnest“, damit die Massefläche
dass man versuchen kann, das Problem zu be- angezeigt und die Verbindungen optimiert wer-
heben. den. Wie man sieht, sind alle Masseverbindun-
gen nun verschwunden und die Bauteile haben
an den entsprechenden Pins eine direkte Verbin-
dung zur Massefläche erhalten. Nun kann man
die Teile meistens noch günstiger (also enger)
anordnen.
Winkeloptionen des Werkzeugs zu nutzen, die (sie sollte dort im Ordner img liegen). In der
man oben in der Leiste anklicken kann. Alterna- Boardansicht klickt man nun auf die Schaltfläche
tiv kann man auch beim Ziehen der Leitung die „ULP“ und wählt das Skript 3d341.ulp aus dem
rechte Maustaste drücken, um den Winkel zu än- Verzeichnis ulp des EAGLE3D-Ordners aus.
dern.
Die Einstellungen können so bleiben und man
Auch die Leitungsdicke lässt sich über die Aus- braucht nur noch auf „POV-Datei schreiben“ oder
wahl „Width“ ändern, sodass man zwischen den „POV-Datei schreiben und Ende“ zu klicken. Nun
Pins eines Bauteils durchkommt. Wenn eine wird man noch gefragt, welche Logos auf den ICs
große Massefläche besteht, sieht man die neu abgebildet werden sollen, ob die ICs gesockelt
gerouteten Leitungen oft nicht. Mit einem Klick sein sollen, welche Farbe die LEDs haben sollen
auf Ratsnest wird das Layout neu gezeichnet. und Ähnliches. Danach wird die POV-Ray-Datei
Einstellungsdialog des Autorouters. geschrieben (der Pfad und Dateiname kann im
Um sich den Verlauf einer Leitung anzusehen, ersten Dialog von EAGLE3D bestimmt werden),
Statusleiste an, ob noch offene Verbindungen be- kann man auf die Schaltfläche „Show“ und dann welche man mittels
stehen (und wenn ja, wieviele). auf das gewünschte Netz klicken (das funktio-
niert auch im Schema). Mit dem Werkzeug „In- $ povray -W800 -H600 dateiname .pov
Nun kann man noch die Tests Erc und Drc durch fo“ kann man sich zu jeder Leitung und jedem
laufen lassen und das Layout speichern. Die Da- Bauteil Informationen wie Name, Wert und Positi- rendern kann. (POV-Ray muss dafür installiert
teiendung für Platinenlayouts ist .brd. on anzeigen lassen (funktioniert im Schema und sein). Dabei steht -W800 für die Breite von 800
beim Boardlayout). Pixeln und -H600 für die Höhe von 600 Pixeln.
Tipps zum (manuellen) Routen
Diese Angaben können nach Belieben geändert
Manchmal schafft es der Autorouter einfach nicht, Auf jeden Fall sollte man sich am Anfang die Ziele werden. Je größer man das Bild macht, desto län-
alle Verbindungen zu routen. Man kann alle Lei- (gerade was die Größe der Platine angeht) nicht ger dauert das Rendern. Das Ergebnis wird in
tungen auftrennen und die Bauteile etwas ver- zu hoch stecken und ruhig regen Gebrauch von dateiname.png gespeichert.
schieben, um den Autorouter noch einmal laufen Drahtbrücken machen.
lassen. Das bringt oft erstaunlich gute Ergebnis- Wenn man die Werte der Zeilen 44–50 in der
se. Doch auch damit lassen sich oft nicht alle Ver- Vorschaubild der Platine erzeugen POV-Ray-Datei ändert, wird dadurch die Positi-
bindungen routen. In diesem Fall muss man die Mit dem Skript EAGLE3D [5] kann man sich ei- on der Kamera verschoben, wodurch man sehr
restlichen Leitungen manuell routen. ne POV-Ray-Datei (siehe „Der Raytracer POV- schöne Nahaufnahmen erzeugen kann. Für das
Raytracer“ freiesMagazin 09/2009 [6]) erzeugen obige Beispiel kann man einfach mal folgende
Dafür klickt man auf das Werkzeug „Route“ und lassen, welche die Platine darstellt. Werte ausprobieren:
dann auf die Leitung oder den Pin, der noch nicht
verbunden ist. Nun kann man eine Linie auf die Das Script kann man einfach irgendwo im Datei- #local cam_x = 20;
gleiche Weise ziehen wie beim Schaltplan ein system entpacken. Die Bauteilbibliothek gehört #local cam_y = 14;
Netz. Oft empfiehlt es sich, die verschiedenen ins Verzeichnis povray des EAGLE3D-Ordners #local cam_z = -45;
# local cam_a = 20; und ein Ätzbad. (Man kann beides bei Elektronik- ist und die Reste des entwickelten Fotolacks ver-
# local cam_look_x = 10; versandhändlern erhalten. Dosierungsanweisun- schwunden sind, kann man die Platine aus dem
# local cam_look_y = 2; gen sind normalerweise dabei). Ein Bohrer mit Entwickler nehmen und unter klarem Wasser ab-
# local cam_look_z = 3; einem Gestell ist auch sehr praktisch. Zum Ent- spülen. (Ab jetzt kann das Licht auch wieder an-
fernen des überschüssigen Fotolacks wird zum geschaltet werden.) Nun kommt sie ins Ätzbad, in
Nach jeder Änderung der Datei muss das Bild mit Schluss noch normaler Spiritus genutzt. dem sie so lange bleibt, bis alle belichteten Kup-
dem POV-Ray-Befehl erneut gerendert werden. ferflächen aufgelöst sind.
Ein Belichtungsgerät kann man sich selber bau-
Die Platine ätzen en. Dafür gibt es eine Anleitung von Andreas Mit dem Spiritus kann man nun die Fotolack-
Behnisch [7] (vom mir nicht getestet). Reste entfernen. Danach sollte man die Platine
Um die Platine zu ätzen, braucht man eine Men-
mit einem Leitungsprüfer durchmessen, um zu
ge Zubehör. Neben der Fotoplatine, die man bei Zum Drucken der Schaltung schaltet man in der sehen ob alle Verbindungen leiten und kein Kurz-
fast allen Elektronikhändlern beziehen kann, be- Boardansicht mit der Schaltfläche „Display “ al- schluss vorhanden ist.
nötigt man eine Lichtquelle, ein Entwicklerbad le Anzeigen bis auf „Bottom“ (bzw. „Top“ für die
Oberseite von doppelseitigen Platinen), „Pads“, Als nächstes müssen alle Löcher gebohrt wer-
„Vias“ und „Dimension“ aus. Danach kann man den. Danach kann die Platine bestückt und ge-
die Schaltung am besten auf Projektorfolien dru- lötet werden.
cken (die Folien, die sonst für Tageslichtprojekto- Weitere Informationen zum Ätzen gibt es im Wiki-
ren genutzt werden). book „Platinen selber herstellen“ [8].
Nachdem man Schaltung und Platine zurecht ge- Tipps für doppelseitige Platinen
schnitten hat, macht man das Licht aus und zieht Das Wichtigste beim Erstellen von doppelseiti-
die Schutzfolie von der Platine. gen Platinen ist, sehr genau zu arbeiten und je-
Nun wird die ausgeschnittene Schaltung mit den Schritt sorgfältig zu überlegen. Es ist viel Ar-
durchsichtigem Klebeband auf der Fotoplatine beit, eine solche Platine anzufertigen, und wenn
befestigt (die Schrift auf der Schaltung sollte les- man nicht sorgfältig arbeitet, klappt es meist
bar sein) und auf das Belichtungsgerät gelegt. nicht.
Bei der Arbeit mit dem Autorouter empfiehlt es
Die Belichtungsdauer ist von der Intensität der
sich, mehrere Ansätze auszuprobieren. So kann
Lampe und der verwendeten Platine abhängig.
man zuerst eine Seite routen und die übrig geblie-
Am Anfang muss man meist etwas probieren,
benen Verbindungen auf der anderen Seite er-
bis man das gewünschte Ergebnis erreicht hat.
neut mit dem Autorouter routen. Dafür stellt man
Meist reichen 2-3 Minuten Belichtungszeit.
das erste Mal „TOP“ auf „N/A“ und „BOTTOM“
Nach dem Belichten kommt die Platine in den auf „*“ und für den zweiten Durchlauf genau um-
Das fertig gerenderte Bild. Entwickler. Sobald die Schaltung gut erkennbar gekehrt.
Nach dem Routing ist es meist blemen weiter helfen. Einige gute Tipps gibt es
vorteilhaft, die vom Autorouter ge- auch im Wiki von Mikrocontroller.net [10].
setzten Vias mit dem Werkzeug L INKS
„Change“ über den Menüpunkt
„Drill“ zu verkleinern. [1] http://www.cadsoft.de
[2] http://www.cadsoft.de/download.htm
Zum Belichten hat es sich bewährt, [3] http://www.freiesmagazin.de/freiesMagazin-2009-
mit durchsichtigem Klebeband ei- 06
ne Tasche aus den beiden aus- [4] http://de.wikipedia.org/wiki/NP_%28Komplexit%
gedruckten Schaltungen zu bas- C3%A4tsklasse%29
teln und die Platine dort hineinzu- [5] http://www.matwei.de/doku.php?id=de:eagle3d:
legen. Dadurch verrutscht die Plati- eagle3d
ne nicht so leicht. Das Belichten ist [6] http://www.freiesmagazin.de/freiesMagazin-2009-
einer der kritischsten Punkte beim 09
Erstellen von doppelseitigen Plati- [7] http://www.jogis-roehrenbude.de/Leserbriefe/
nen, da beide Seiten passgenau Platinenbelichter/Platinenbelichtung.htm
aufeinander liegen müssen. Wenn [8] http://de.wikibooks.org/wiki/Platinen_selber_
Das fertige Bild mit geänderter Kameraposition. die beiden Seiten nicht genau auf- herstellen
einander liegen sind die Bohrlöcher
[9] http://www.cadsoft.de/faq.htm
Ein anderer Ansatz ist es, beide Seiten gleichzei- später auf einer Seite falsch.
[10] http://www.mikrocontroller.net/articles/Eagle_im_
tig zu routen und für „TOP“ „|“ zu wählen und für Hobbybereich
„BOTTOM“ „-“. Das ganze sollte man auch mal Beim Bohren sollte man erst Löcher in der Nä-
umgekehrt testen, um zu sehen, ob dann besse- he der vier Ecken bohren, um sicher zu gehen,
re Ergebnisse erzielt werden (also „TOP“ auf „-“ dass die Schaltung richtig passt. Wenn man erst Autoreninformation
und „BOTTOM“ auf „|“). nach der Hälfte der zu bohrenden Löcher be-
merkt, dass die Seiten nicht genau aufeinander Marcel Jakobs hat für viele seiner
Damit der Autorouter Bauteile wie Wannenste- liegen, hat man sich eine Menge Arbeit umsonst Projekte selbst Platinen entwickelt.
cker nicht auf der Oberseite (TOP-Layer) verbin- gemacht. Dafür nutzte er jedes Mal EAGLE. Die
det (dies ist sehr ungünstig zu löten), kann man Bilder aus EAGLE3D haben schon in
mit dem „Polygon“-Werkzeug Bereiche definie- Weitere Informationen mancher seiner Arbeiten Verwendung
ren, die vom Autorouter nicht betreten werden Das Handbuch von EAGLE befindet sich in den gefunden.
dürfen. Dazu wählt man das Layer „tRestrict“ aus Installationsdateien. Wurde EAGLE über die Pa-
(„bRestrict“ verbietet das Betreten im BOTTOM- ketverwaltung installiert, so sollte es sich un-
Layer) und rahmt damit die entsprechenden Bau- ter /usr/share/doc/eagle-data/help befin-
teile ein. den. Ansonsten kann die FAQ [9] bei vielen Pro- Diesen Artikel kommentieren
m 12. September 2009 fand in Ess- auch von Seiten der Teilnehmer einige Verbes- pspicture-Umgebung sollte man daher wohl
einzelnen Zuordnungen der Knoten und Verbin- nicht viel besser und funktionieren oft gar nicht Was gibt es Neues bei TEX Live?
dungen an und auf welche Art die Grafik erzeugt oder nur eingeschränkt. (Das hoffnungslos veral- Den Abschluss bildete Klaus Höppner, der einen
werden soll. tete latex2html [16] bleibt außen vor.) Vortrag von Karl Berry zum aktuellen Stand von
TEX Live 2009 zum Besten gab, welches im
Aufgrund einiger Einschränkungen bei der gra- Komfortable Makefiles Herbst 2009 erscheinen soll.
fischen Darstellung (keine besonderen Lini-
Danach folgte ein weiterer Vortrag von Micha-
en, kein Mathemodus als Beschriftung, kei- Dabei beschränken sich die Änderungen gegen-
el Niedermair, der die Verwendung von Make-
ne Schriftarteinbindung) wurde auch der Ex- über der Version 2008 auf Kleinigkeiten. So
files [17] für TEX-Dokumente erklärte. Dabei
port mittels dot2tex [11] dargestellt. Über die- werden mittels epstopdf EPS-Grafiken in LATEX-
wird anhand verschiedener Regeln ein TEX-
ses kann man ein erstelltes Diagramm in TEX- Dokumenten, die mit pdflatex übersetzt wer-
Dokument nur dann kompiliert, wenn sich Inhal-
Code exportieren und dann mittels des PSTricks- den, automatisch nach PDF konvertiert.
te geändert haben. Das Ganze kann man auch
Paketes [12] verändern.
so erweitern, dass beispielsweise Grafiken aus Mit write18 kann man externe Befehle aus TEX
Dynamische Bücher dem Programm bei Änderungen korrekt in PDF heraus aufrufen, welches aufgrund der Sicher-
konvertiert und dann im LATEX-Dokument einge- heit aber nur bestimmte Kommandos ausführen
Im Anschluss folgte ein sehr interessanter Vor-
bunden werden. kann. (Man kann diesen Sicherheitsmechanis-
trag von André Wobst. Für die Erstellung von
Tagungsbänden wurde ein Online-Programm er- mus aber sehr leicht aushebeln.)
Zur Hälfte der Zeit wurde der Vortrag aber sehr
stellt, was es erlaubt, einzelne Beiträge zu selek- technisch und durch die zahlreichen Beispiele zu Vorgestellt wurde auch der neue minimalistische
tieren und diese nach eigenen Sortierungsmetho- ausführlich, sodass zu der Zeit kaum noch etwas TEX-Editor TeXworks [18] , der einen eingebau-
den als PDF auszugeben. Dabei werden die Tex- Neues mitgenommen werden konnte. ten PDF-Betrachter besitzt. Man kann mit ihm auf
te aus der Datenbank genommen und in LATEX- diese Art im PDF-Dokument eine Stelle markie-
Code abgelegt, die dann mittels HEVEA [13] Having Fun with LATEX II ren und auf den zugehörigen TEX-Quellcode im
in ein einfaches HTML-Format konvertiert oder Nach der Kaffeepause stellte Adelheid Grob ei- Editor springen, was sicherlich in manchen Fäl-
eben per pdflatex übersetzt werden können. nige interessante LATEX-Pakete vor, die die meis- len eine hilfreiche Funktion ist.
ten Zuhörer sicherlich noch nicht kannten. Neben
Eine Anforderung ist dabei, dass der TeX2HTML-
sehr speziellen Paketen wie cooking, mit dem Schlussbemerkung
Konverter sehr schnell arbeitet, da bei einem
man Rezepte setzen kann, deren Layout sich an Die Veranstaltung war sehr locker, alle waren
Tagungsband mit mehreren tausend Beiträgen
dem der Dr.-Oetker-Kochbücher orientiert oder freundlich und es gab viele interessante Vorträ-
nicht erst Stunden auf das Online-Ergebnis ge-
guitar, welches für die Akkorde über Liedtexten ge. Am Vorabend des Freitags und am Sams-
wartet werden kann. HEVEA soll dabei diese An-
zuständig ist, wurden auch sehr hilfreiche Pa- tagabend traf man sich in verschiedenen Restau-
forderungen erfüllen.
kete wie pseudocode für die Darstellung von rants, bei dem man sich auch über andere The-
Meine persönlichen Erfahrungen mit HEVEA zei- Algorithmen als einfachen Pseudocode, eemeir men außer LATEX unterhalten konnte – was natür-
gen leider ein anderes Bild, insbesondere was zum Setzen von „geschlechtsunabhängigen“ Do- lich auf der Tagung selbst auch möglich war. Am
die allgemeine Anwendung angeht. Die Alterna- kumenten und uebungsblatt zur Erstellung von Sonntag gab es noch eine touristische Führung
tiven tex4ht [14] und tth [15] sind hier aber auch Übungsblättern und Klausuren vorgestellt. durch Esslingen.
Wer an LATEX interessiert und bei einer der nächs- [6] http://projekte.dante.de/DanteFAQ/Literatur [17] http://code.google.com/p/texworks/
ten Tagungen in der Nähe ist (die nächsten wer- [7] http://texcatalogue.sarovar.org/entries/pst2pdf.
den in Dortmund, Aaachen und Bremen stattfin- html
den), sollte sich unbedingt dort anmelden. Auch [8] http://biblatex-biber.sourceforge.net/ Autoreninformation
als nicht DANTE-Mitglied kann man bei den Vor- [9] http://www.graphviz.org/
Dominik Wagenführ ist unter ande-
trägen zuhören und einiges an Wissen mitneh- [10] http://www.fauskes.net/code/dot2tex/
rem für das Layout in freiesMagazin
men. [11] http://tug.org/PSTricks/ zuständig, was mit LATEX gesetzt wird.
L INKS [12] http://hevea.inria.fr/ Aus dem Grund interessiert er sich
[13] http://www.lrz-muenchen.de/services/software/ auch immer für neue Pakete und
[1] http://www.dante.de/ sonstiges/tex4ht/mn.html Ansätze auf diesem Gebiet.
[2] http://www.dante.de/events/mv41.html [14] http://hutchinson.belmont.ma.us/tth/
[3] http://chemnitzer.linux-tage.de/ [15] http://www.latex2html.org/
[4] http://www.linuxtag.org/2009/ [16] http://www.ijon.de/comp/tutorials/makefile.
[5] http://www.dante.de/DTK.html html Diesen Artikel kommentieren
Kiste: Eine Kiste sperrt ein Feld Schrottpresse: Zwischen den rechts auf das nach oben laufende Förderband
komplett. Man kann nicht anders, beiden Schiebern einer Schrott- geschoben. Dabei wird er auch gedreht, so dass
als das Hindernis zu umfahren. presse sollte man nicht stehen er ebenfalls nach oben blickt.
bleiben, sonst landet man als
Loch: Wenn ein Roboter dieses kleiner zusammengepresster
Feld aus Versehen betritt oder dar- Würfel auf dem Müll.
auf geschoben wird, verschwindet
er auf Nimmerwiedersehen. Förderbänder haben noch eine Besonderheit,
Öl: Besonders glitschig! Wenn ein denn sie können, wenn ein Förderband den Ro-
Roboter dieses betritt oder dar- boter auf ein anderes Förderband schiebt, auch
auf geschoben wird, rutscht er bis die Blickrichtung des Roboters ändern. In allen
zum nächsten Nichtölfeld weiter anderen Fällen bleibt die Blickrichtung des Robo-
oder bis er von einer Wand ge- ters erhalten.
stoppt wird. Wenn er sich auf ei-
nem Ölfeld dreht, wird die Dre- Als Beispiel: Der Roboter bewegt sich von seiner
hung verdoppelt. Aus einer Links- Startposition drei Schritte nach rechts und wird
oder Rechtsdrehung wird zum Bei- dann durch das Förderband nur nach oben ge-
spiel eine Drehung um 180 Grad. schoben, die Blickrichtung bleibt nach rechts. Fall 2: Der Roboter wird gedreht.
Drehrad: Drehwurm garantiert.
Die Elemente, die den Roboter auf dem Feld be-
Wenn man auf diesem Feld zum
wegen (Drehrad, Förderband, Schieber, Schrott-
Stehen kommt, wird der Roboter
presse), agieren erst, wenn der Roboter nach ei-
um 90 Grad in die jeweils ange-
nem Kartenzug zum Stillstand kommt. Durch ei-
zeigte Richtung gedreht.
ne Schrottpresse zu fahren, ist also kein Problem.
Förderband: Nur für Faule! Bleibt Über ein Loch fahren zu wollen schon eher.
man auf einem Förderband ste-
hen, bewegt es den Roboter einen Zusätzlich agieren diese bewegenden Elemente
Schritt in die jeweilige Richtung. nacheinander und nicht gleichzeitig. Die Reihen-
Aufpassen sollte man hier, wenn folge ist:
am Ende der Abgrund wartet.
Reihenfolge der Elementaktionen
Schieber: Deprimierend, ständig Reihenfolge Aktion
wird man durch die Gegend ge-
Fall 1: Der Roboter behält die Blickrichtung bei. 1 Die Förderbänder bewegen sich.
schoben. Bleibt man vor dem 2 Der Schieber und die Schrottpresse
Schieber stehen, schiebt er den Im anderen Fall bewegt sich der Roboter nur zwei werden aktiviert.
Roboter ein Feld vorwärts. Felder vor und wird dann vom Förderband nach 3 Die Drehräder drehen sich.
Am Ende eines Spiels wird noch zusätzlich ei- gähnende Leere, ein Schritt zu weit und der Ro- eine schlechte KI, die den Roboter in jedes Loch
ne Datei globalseq.txt erstellt, die die gesam- boter verschwindet auf Nimmerwiedersehen. stolpern lässt und ihn dadurch zerstört, kann
ten Bewegungen des Roboters enthält. Auf diese nicht gewinnen. Die Einschränkung müssen wir
Sonderpreis: 3-D-Spielbrett
Weise kann man genau nachvollziehen, wie der machen, um ein gewisses KI-Niveau im Wettbe-
Als kleine Besonderheit fänden wir es schön,
Roboter zum Ziel gefunden hat. Die einzelnen werb zu erreichen.
wenn es ein 3-D-Spielbrett gäbe, in dem man
Runden werden dabei in der Datei durch acht
den Roboter herumlaufen sieht. Als Anforderung Das 3-D-Spielbrett sollte natürlich korrekt funktio-
Striche -------- voneinander getrennt.
muss die GUI neben der Spielbrett- und Ro- nieren und „gut aussehen“.
Der Wettbewerb boteranzeige nur das komplette Sequenzskript
Programmiersprache
globalseq.txt (siehe oben) laden und abspie-
Kategorien Die benutzte Programmiersprache ist wie immer
len können.
Der Wettbewerb wird in vier Kategorien unterteilt, freigestellt. Das Projekt sollte aber auf einem
wobei die ersten drei eine Schwierigkeitsstufe an- Hinweis: 3-D schließt in diesem Fall auch die iso- „Standard-Linux-Rechner“ (d. h. mit einer aktuel-
geben. metrische Darstellung [3] mit ein, die viele Spie- len Linux-Distribution) ohne Probleme kompilier-
ler vielleicht aus Action-Rollenspielen wie Diablo und ausführbar sein.
Schwierigkeitsstufe leicht oder Sacred kennen.
In der einfachsten Stufe kann der Roboter nicht Die Programme müssen im Quelltext eingereicht
sterben, das heißt, das Spielbrett enthält keine Teilnahmebedingungen werden, der unter einer Open-Source-Lizenz [4]
Löcher und auch keine Schrottpresse. Auch die Jeder Teilnehmer kann nur in einer der vier Kate- veröffentlicht werden muss. Hier helfen wir gerne
Ölfelder werden entfernt, da deren Auswirkungen gorien antreten. bei der Auswahl einer passenden Lizenz weiter,
recht komplex werden können. Zusätzlich ist das sollten Fragen zu diesem Thema auftauchen.
Zusätzlich muss es pro Kategorie (außer bei dem
Spielbrett von einer unsichtbaren Wand umge- 3-D-Spielbrett) mindestens zwei Teilnehmer ge- Für die KIs ist es natürlich erlaubt, den
ben, sodass der Roboter nicht herunterfällt. ben, damit wenigstens etwas Wettbewerb ent- Quelltext und die Bibliotheken der Referenz-
Schwierigkeitsstufe mittel steht. Implementierung (siehe unten) unter Beachtung
der Lizenz zu nutzen, um auf dieser Basis eine
In der Standardstufe sind alle Felder wie oben freiesMagazin-Teammitglieder sind von der Teil-
eigene KI zu erstellen.
beschrieben vorhanden, d.h. es gibt auch Löcher nahme ausgeschlossen, weil diese zum einen
und Schrottpressen, bei denen der Roboter ster- Zugriff auf alle andere KIs haben und zum an- Sinnvoll ist es, wenn das KI-Programm nach der
ben kann. Der Roboter kann aber immer noch deren auch viel früher von diesem Wettbewerb Ausführung im Erfolgsfall 0 zurückliefert und bei
nicht vom Spielbrettrand fallen. erfahren haben. Fehlern einen Wert ungleich 0.
Schwierigkeitsstufe schwer Qualität Laufzeit
In der schwierigsten Stufe muss der Roboter Daneben gibt es noch die Anforderung, dass der Die Laufzeit der KI-Programme sollte natürlich
wirklich aufpassen, wo er hintritt, denn die un- Roboter in der jeweiligen Schwierigkeitsstufe, in so gering wie möglich sein. Für die Teilnahme
sichtbare Wand um das Spielbrett herum ist ver- der man teilnehmen möchte, in mindestens 75 % am Wettbewerb sollten im Schnitt pro Spiel nicht
schwunden. Außerhalb des Spielbretts herrscht der Testfälle das Ziel erreichen muss. Das heißt, mehr als maximal 6 Sekunden gebraucht werden.
Das heißt ein kompletter Testdurchgang mit 100 Weihnachten ein kleines Geschenk machen Lesen der Spieledateien übernimmt, nimmt den
Kartenstapeln auf einem Spielbrett sollte maxi- können. Alle Einsendungen sollten per E-Mail größten Teil des Archives ein.
mal 10 Minuten dauern. bis zu diesem Stichtag bei der Redaktion un-
Im Verzeichnis robots-engine_dir findet man
ter eingegangen
Preisgelder die Bibliotheken in Ordnern, die nach Basis
sein. Programme, die uns später erreichen, kön-
Die vier Kategorien sind jeweils mit einem Buch- (libbase), Roboter (libbot), Karten (libcards)
nen leider nicht mehr beachtet werden.
gutschein in folgender Höhe dotiert: und Spielfelder (libtiles) aufgeteilt sind.
Preisgelder Es ist erlaubt, dass ein Teilnehmer seine einge- Der Quellcode unterliegt der GNU Lesser Gene-
Stufe Preisgeld
sandte KI mehrfach ausbessert. Wir geben ger- ral Public License (LGPL) [6], damit eine Verwen-
leicht 10 Euro
ne Hinweise auf etwaige Fehler der KI (bezogen dung der erstellten Bibliotheken erlaubt ist, oh-
normal 20 Euro
auf den Quellcode, nicht auf falsche Entscheidun- ne dass man den eigenen Quellcode wieder un-
schwer 30 Euro
gen). Informationen über die Leistung der eige- ter der LGPL veröffentlichen muss. Das heißt, ei-
3-D-Spielbrett 50 Euro
nen KI im Vergleich zu anderen Teilnehmern wer- ne KI, die auf libbot zugreift, um die Roboter-
den aber nicht vorab veröffentlicht. Dateien auszulesen, darf beispielsweise unter
Gewinner der BSD-Lizenz vertrieben werden. Würde der
Die einzelnen KIs treten auf verschiedenen (bis Referenzimplementierung
Quellcode unter der GPL veröffentlicht werden,
nach Ende des Wettbewerbs geheimen) Spiel- Um seine eigene KI testen zu können, benö- hätte das Endprodukt, das die Bibliothek nutzt,
brettern mit zuvor berechneten Kartenstapeln an. tigt man die Dateien, die später den Wettbewerb auch unter der GPL veröffentlicht werden müs-
In die Bewertung fließt zunächst ein, ob der Ro- verwalten werden. Das gesamte Paket kann als sen, was eine zu große Einschränkung wäre.
boter das Ziel erreicht hat oder vorher zerstört Tar-Archiv [5] heruntergeladen werden und muss
wurde. Erreicht er das Ziel, fließt noch die Anzahl nach dem Entpacken mit Wer natürlich Teile des Quellcodes aus der En-
der Züge bzw. Runden in die Bewertung mit ein. gine benutzen und abändern oder ergänzen
Es ist also sehr positiv, wenn ein Roboter in mög- $ make möchte, kann dies auch tun, ist dann aber an ei-
lichst wenigen Runden das Ziel sicher findet. ne Veröffentlichung des Gesamtwerkes unter der
kompiliert werden. LGPL gebunden.
Bei dem 3-D-Spielbrett ist die Wahl des Gewin-
ners etwas schwieriger, da Aussehen immer im Das Paket setzt sich aus verschiedenen Bestand- Nach der Erstellung mittels make findet man die
Auge des Betrachters liegt. Wir versuchen aber teilen zusammen, wovon ein Großteil in C++ pro- Datei robots-engine im Hauptordner, die man
die Einsendungen objektiv zu bewerten. Der Teil- grammiert ist. Das Paket build-essential und wie folgt aufrufen kann:
nehmer mit dem schönsten 3-D-Spielbrett ge- dessen Abhängigkeiten sollten auf alle Fälle in-
winnt. stalliert sein, um die Programme kompilieren zu $ ./ robots - engine save DECKNAME
können.
Wettbewerbsdauer Dies erstellt einen zufälligen Kartenstapel und
Der Wettbewerb begann am 27. September Spiele-Engine speichert diesen als Datei DECKNAME ab. Wer
2009 und endet am 13. Dezember 2009, so- Die Dateien der Engine, dass heißt der Verwal- gleich mehrere Kartenstapel erstellen möchte,
dass wir den Gewinnern hoffentlich noch zu tung, die die KI ausführt und das Schreiben und kann dies mit einem einfachen Skript erledigen:
(dies liegt in leicht abgewandelter Form auch als Als letztes Argument kann man optional (daher man mit dem eigenen Bot spielen, passt man ein-
Datei create_decks vor): die eckigen Klammern) auch die Spielstufe mit fach die Zeile
angeben. Standardwert ist „normal“. Ein Beispiel:
#!/ bin/bash ./ KIs/robots -ki - reference $1
mkdir -p decks $ ./ robots - engine load y
gameboards /chop.dat decks/y entsprechend den eigenen Wünschen an.
# create decks 0 - 99 carddeck0 .dat easy Hat man eine Runde über die Option start
for (( I=0; $I <= 99; I++ )) ausgeführt, findet man die oben erwähnte Datei
do Wenn man das Spielbrett und Kartenstapel gela- sequence.txt im Ordner. In dieser findet man
echo "./ robots - engine save y den hat, kann man eine Runde (nicht das gesam- die Bewegungssequenz wieder.
decks / carddeck$I .dat" te Spiel!) per
./ robots - engine save decks/y Ein komplettes Spiel kann man durchführen,
carddeck$I .dat $ ./ robots - engine start [easy|y wenn man die Engine solange startet, bis der
sleep 2 normal |hard] Bot am Ziel ist, zerstört wurde oder keine Karten
done mehr auf dem Kartenstapel liegen.
laufen lassen. Die Spielstufe sollte dabei am bes-
Listing 2: create_decks Referenz-KI
ten mit der bei load angegebenen übereinstim-
Die Referenz-KI im Ordner KIs/robots-ki_dir
men.
In dem Fall wird erst ein Verzeichnis decks er- soll nur grob veranschaulichen, wie man die Bi-
stellt und dann 100 Kartenstapel darin gespei- Nach dem Aufruf wird intern das im Ordner lie- bliotheken der Spiele-Engine nutzen kann, um
chert. Die zwei Sekunden Wartezeit sind dafür gende Skript bot-ki gestartet: mit deren Hilfe eine KI aufzubauen.
da, dass die Zufallszahlen (die von der Uhrzeit
Die KI selbst ist sehr dumm, denn sie wählt im-
abhängig sind) neu berechnet werden. #!/ bin/bash mer nur die ersten fünf der acht zur Auswahl ste-
Im Ordner gameboards findet man das Referenz- henden Karten aus. Das sorgt dafür, dass der Ro-
# Reference boter nur per Zufall ins Ziel findet.
Spielbrett chop.dat. Man kann nun entweder
./ KIs/robots -ki - reference $1
dieses Spielbrett alleine laden, sodass ein zufäl-
Die Referenz-KI wird unter der GNU General Pu-
liger neuer Kartenstapel erzeugt wird oder man
retVal =$? blic License [7] veröffentlicht.
benutzt einen der über obiges Vorgehen gespei-
cherten Kartenstapel: Es ist aber möglich, innerhalb von wenigen Stun-
exit $retVal
den mit Hilfe der Bibliotheken eine KI zu schrei-
$ ./ robots - engine load y Listing 3: bot-ki ben, die auch auf der Stufe „schwer“ den Robo-
BOARDNAME [easy| normal |hard] ter sicher ins Ziel bewegt. Diese zweite Referenz-
$ ./ robots - engine load y Dies ruft also einfach nur die jeweilige KI (hier die KI von Dominik Wagenführ wird aber erst nach
BOARDNAME DECKNAME [easy| normaly Referenz-KI) im Ordner KIs auf. Als Argument Beendigung des Wettbwerbs veröffentlicht, sonst
|hard] $1 wird dabei die Spielstufe übergeben. Möchte wäre die Teilnahme zu einfach.
Wettbewerb starten $ ./ start_contest " gameboards /y Ein Spielbrett sollte (für die GUI-Anzeige) nicht
Wer den Wettbewerb starten will, kann das Skript chop.dat gameboards / board2 .dat"y größer als 12x12 Felder sein, da die GUI auf die-
start_contest benutzen: hard se Größe beschränkt ist.
#!/ bin/bash Spielbrett-Editor
GAMES=$1 Erweiterungen
Wer Lust hat, kann auf Basis der Ruby-GUI oder
DECKS=‘find decks -name "*. dat" | y Da der Wettbewerb so offen wie möglich ge-
sort ‘ als Eigenentwicklung einen Spielbrett-Editor
halten wird, kann natürlich auch jeder Nicht-
LEVEL=$2 schreiben, in welchem man per Drag & Drop die
Teilnehmer etwas beitragen, wenn er möchte. Es
Felder auf ein Spielbrett setzen kann und dieser
werden hier einige Möglichkeiten vorgestellt, wie
date das Ergebnis dann als ASCII-Datei nach obigem
man etwas beitragen kann.
for GAME in $GAMES Schema abspeichert.
do Themen
for DECK in $DECKS Im Ordner images findet man die Themen, die Es gibt bereits einen Spielfeldeditor für das Ori-
do für die Spielbrettanzeige genutzt werden können. ginalspiel RoboRally [8], der aber für Windows
echo "./ robots - contest y Wer selbst ein neues Thema erstellen möchte, geschrieben wurde. Damit lassen sich aber auch
$GAME $DECK $LEVEL " legt einfach ein neues Verzeichnis in diesem Ord- über Wine neue Spielfelder erstellen und ausdru-
./ robots - contest $GAME y ner an und speichert die selbst erstellten Bilder cken.
$DECK $LEVEL der 31 Felder plus jeweils ein Bild für den Robo-
done Eine Schnittstelle für den Wettbewerb gibt es
ter und den Cursor dort ab. Die Felder müssen
done aber nicht und der Editor ist auch nicht Open
dabei eine Größe von 64x64 Pixeln haben. Der
date Source.
Roboter und der Cursor müssen einen transpa-
exit 0 renten Hintergrund haben. Spielfelder
Listing 4: start_contest Das neue Thema wird automatisch vom GUI- Neben den obigen Spielfeldern kann man
Starter erkannt und kann dort ausgewählt wer- sich natürlich noch zahlreiche neue Felder
Der Aufruf ist wie folgt: den. ausdenken, deren Funktion man in die Engine
einprogrammieren müsste. Als Beispiele seien Der Phantasie sind keine Grenzen gesetzt. [2] http://www.wizards.com/default.asp?x=ah/prod/
genannt: roborally
Eine sehr gute Auflistung weiterer Spielfelder fin- [3] http://de.wikipedia.org/wiki/Isometrische_
Teleporter: Teleportiert einen Roboter von ei- det man auf den Seiten WarpZone [9] und Robo- Darstellung
nem Feld zu einem anderen. Factory [10]. Dort sind auch gleich zahlreiche [4] http://www.opensource.org/licenses/category
Fallgrube: Öffnet zu bestimmten Zeiten (z. B. Spielbretter abgelegt, die diese neuen Elemente
[5] http://freiesmagazin.de/ftp/2009/freiesMagazin-
jede 2 und 4 Phase einer Runde) ein Loch im nutzen.
2009-10-wettbewerb.tar.gz
Boden. [6] http://www.gnu.org/licenses/lgpl.html
Schiebetür: Öffnet und schließt sich nur zu be- Schlussbemerkungen
[7] http://www.gnu.org/licenses/gpl.html
stimmten Phasen. Wir wünschen allen Teilnehmern viel Erfolg und
[8] http://www.roborally-editor.net/german/
Laser: Wie im Originalspiel RoboRally nimmt freuen uns auf zahlreiche Einsendungen. „Let the
games begin . . . “ [9] http://www.randomdice.com/games/roborally/
ein Roboter Schaden, wenn er im Strahl eines rrboardelement.asp
Lasers stehen bleibt. Quellcode: per FTP oder per HTTP. [10] http://www.robofactory.de/pages/content/rules.
Reparaturkit: Wie im Originalspiel, auf dem der htm
Roboter wieder repariert wird. L INKS
Einbahnstraße: Der Roboter kann nur in diese [1] http://www.freiesmagazin.de/20090401-
Diesen Artikel kommentieren
Richtung ein Feld betreten und verlassen. programmierwettbewerb-gestartet
Daneben benötigt man noch einige Entwickler- Nach der Kompilierung von Gosu kann man
Bibliotheken, um die Gosu GUI kompilieren zu die Entwicklerpakete wieder deinstallieren. Ruby
können: und Co. müssen natürlich installiert bleiben.
g++
libgl1-mesa-dev GUI-Start
Die grafische Oberfläche besteht aus zwei Teilen:
libpango1.0-dev
zum einen aus der Oberfläche für alle Einstellun-
libboost-dev gen des Spiels „robots-gui-helper“ und zum ande-
libsdl-mixer1.2-dev ren aus der Oberfläche für das Spielbrett „robots- Das Hilfsprogramm „GUI-Starter“ zur
ruby1.8-dev gui“. Da die „robots-gui“ nie direkt gestartet wer- Vorbereitung der GUI.
Über „Neues Spiel starten“ kann man einstellen, Alternativ gibt es noch eine handgemalte Version
ob der Roboter von seiner letzten Position aus im Ordner images/pen. Diese wurde von Do-
der Datei bot.txt oder von der Startposition auf minik Wagenführ erstellt. Die Bilder unterliegen
dem Spielbrett starten soll. Zusätzlich wird das der CreativeCommons-Lizenz „Namensnennung-
Spielfeld und der Kartenstapel nicht neu eingele- Weitergabe unter gleichen Bedingungen 3.0
sen, wenn der Haken nicht gesetzt ist. Auf diese Deutschland“ [8].
Art kann man unterbrochene Spiele fortsetzen.
Entfernt man den Haken bei „Spiel animieren“,
läuft der Roboter nicht über das Spielfeld, son-
dern das Spiel wird bis zum Ende berechnet, der
Roboter also das Ziel gefunden hat oder zerstört
wurde. Erst dann wird die Anzeige freigeschaltet Eine gute KI würde wohl eher diesen Weg
und man sieht den Roboter an der Endposition. wählen.
Mit „Spiel starten“ startet man das Spiel und Über einen Klick auf den Eintrag „Pause“ kann
kann dem Roboter bei der Bewegung zuschauen. man das Spiel kurz unterbrechen, „Neustart“
Dieser hinterlässt eine transparente grüne Spur startet das Spiel von vorne (bei einem zufälli-
(Nein, er verliert kein Öl!), mit der man sehen gem Kartenstapel wird ein neuer zufälliger aus-
gewählt). Mit „Beenden“ verlässt man die GUI Die beiden vorinstallierten Themen.
kann, welche Felder er wie häufig betreten hat.
Mit den Tasten + und - kann man die Bewe- und landet wieder im GUI-Starter. L INKS
gungsgeschwindigkeit des Roboters verändern. Hinweis: Die GUI hat eine Größe von 1024x768 [1] http://www.freiesmagazin.de/20090401-
Pixeln. Das heißt, um sie sinnvoll nutzen zu kön- programmierwettbewerb-gestartet
nen, sollte die Bildschirmauflösung größer als [2] http://www.ruby-lang.org/de/
1024x768 sein oder man muss im GUI-Starter [3] http://ruby-gnome2.sourceforge.jp/de/
einstellen, dass das Programm im „Vollbildmo-
[4] http://gems.rubyforge.org/
dus“ starten soll. Dann werden die Grafiken auf
[5] http://www.libgosu.org/
eine kleinere Auflösung herunterskaliert.
[6] http://ruby-gnome2.sourceforge.jp/hiki.cgi?
Die Spielbrett-Themen Install+Guide
In der GUI gibt es (derzeit) zwei Themen zur Aus- [7] http://www.gnu.org/licenses/fdl.html
wahl. [8] http://creativecommons.org/licenses/by-sa/3.0/
de/
Das Standardthema im Ordner images/new wur-
de von Arne Weinberg erstellt. Die Bilder unter-
Ein Testlauf mitsamt Spur des Roboters. liegen der GFDL [7]. Diesen Artikel kommentieren
die im Kreis fahren. Der Roboter würde so nie In der Datei cards.txt scheinen nicht nur Ja, es wäre gut, wenn zum Beispiel auch ein
mehr stillstehen blieben. die 8 Karten zu stehen, aus denen man aus- 100x100-Spielbrett dargestellt werden könnte.
wählen kann, sondern der ganze restliche Sta-
Wenn der Roboter auf eine Wand zu- Darf die 3-D-Darstellung voraussetzen,
pel. Darf die KI diese Information benutzen?
fährt, verfallen dann überflüssige Bewegun- dass bestimmte Pakete installiert sind, wie
gen oder ist der Zug dann einfach nicht mög- Genau genommen ist es sogar die Aufgabe z. B. die wxWidgets-Bibliothek oder verschie-
lich? der KI, die Datei cards.txt einzulesen. Aber: dene OpenGL-Bibliotheken?
Wenn der Roboter ein Feld vor einer Wand Wenn die KI dran ist, stehen in der Datei nicht
mehr alle Karten des Stapels, sondern nur die Natürlich wird man für die grafische Darstel-
steht und über die Karte MF 3 drei Schritte vor-
8, die zur Auswahl stehen. Es gibt daher für die lung auf vorhandene Bibliotheken zurückgreifen
wärts fahren soll, fährt er einen Schritt und die
KI keine Möglichkeit alle Karten komplett einzu- müssen. Die Mesa-Bibliotheken, wxWidgets 2.8
zwei anderen verfallen.
lesen – zumindest wenn die Engine keine Lücke und andere unter neuen Linux-Distributionen vor-
Wenn man direkt vor ein Ölspur steht und hat. handenen Bibliotheken sind dabei kein Problem.
drei Felder mit MF 3 nach vorn geht, wo landet
man? Fragen zur 3-D-Oberfläche Allgemeine Fragen
Man macht einen Schritt, rutscht bis auf das Inwiefern soll das 3-D-Spielbrett wirklich Ist der Wettbewerb nur für natürliche Per-
erste Feld nach der Ölspur und geht dann noch 3-D sein? Ist damit nur isometrische Darstel- sonen oder kann man auch als Verein daran
zwei Schritte weiter. lung gedacht? teilnehmen?
Fragen zur Schnittstelle Es ist sowohl richtiges 3-D (also mit frei be- Es ist durchaus möglich, auch als Verein teil-
Ist es erlaubt, dass der Bot während des weglicher Kamera), als auch 3-D in isometrischer zunehmen, jedoch muss man sich den Preis
Spiel Dateien schreibt, um sich bisschen was Ansicht sowie 2-D mit isometrischer Ansicht ge- dann natürlich untereinander aufteilen.
zu merken? meint.
Wie kann man auf die Bibliotheken (also
An Dateien darf man abspeichern, was man z. B. die libcards.a) in C zugreifen?
Reicht eine isometrische Darstellung aus
möchte, natürlich.
oder soll noch eine weitere (und wenn ja was
In C gar nicht, nur in C++, da die Li-
Wenn schon nur 6 Sekunden pro Spiel zur für eine) Darstellung existieren?
brary Klassen enthält und keine Funktionen.
Verfügung stehen, gibt’s dann eventuell ein
Es wäre ggf. nicht falsch, wenn man alle vier Am besten schaut man sich für eine Verwen-
wenig Vorlaufzeit für jedes neue Spielfeld?
Standardansichten der isometrischen Perspekti- dung das Makefile der Referenz-KI im Ord-
Also 6 Sekunden sind schon sehr großzügig – ve wählen kann oder gar frei rotieren und zoo- ner KIs/robots-ki_dir an. Theoretisch muss
natürlich auf dem späteren Testrechner. Wer sei- men. man nur die Header-Dateien per #include
ne KI auf einem 486er schreibt, wird wohl auch "NAME.hh" in die jeweilige C++-Datei einbinden
mit 20 Sekunden Ausführungszeit am Wettbe- Soll die Kartengröße des 3-D-Spielbretts und dann beim Kompilieren die jeweilige Library
werb teilnehmen können. beliebig groß sein können? mit angeben über
oder schlechter abschneidet. Eine Einbeziehung „Überrollen“ reicht. Sobald das Zielfeld einmal
$ g++ -I./ libbase -I./ libcards -c y aller KIs, die nur außer Konkurrenz teilnehmen, befahren wurde, endet das Spiel.
main.cpp
würde den Testaufwand auf unserer Seite wahr-
$ g++ -o ki.bin main.o -L./ libbase y
scheinlich zu sehr erhöhen. Beim Starten der GUI bekomme ich einen
-L./ libcards -lcards -lbase
Wer seine 3-D-Oberfläche außer Konkurrenz ein- Fehler der Art „invalid multibyte char “. Was
Darf man außer Konkurrenz auch an reichen will, kann dies aber gerne tun. Wir stel- soll ich tun?
den anderen Wettbewerbskategorien teilneh- len diese dann vor, sie kann aber nicht gewinnen,
men? wenn der Teilnehmer bereits in einer anderen Ka- Die GUI setzt Ruby in der Version 1.8.x voraus,
tegorie vertreten ist. mindestens jedoch 1.8.6. – Mit Ruby 1.9 funktio-
Da der Wettbewerb offen geführt und die spä- niert die Anwendung nicht.
tere Wertung auch nicht geheim gehalten wird, Muss das Ziel nur „überrollt“ werden oder
kann jeder daheim bei sich selbst nachvollziehen, muss die Bewegung direkt auf dem Ziel en-
ob seine KI in einer anderen Kategorie besser den? Diesen Artikel kommentieren
Leserbriefe
Für Leserbriefe stehtunsere E-Mailadresse der Sackgasse“ [1]. Herr Brühlmeier stellt darin den sollen. Der Gedanke scheint absurd? Dann
zur Verfügung – wir sehr gut klar, wo der Unterschied zwischen biolo- lest mal die Satzung des Versorgungswerks der
freuen uns über Lob, Kritik und Anregungen zum gischem Geschlecht und grammatikalischem Ge- Rechtsanwälte in Berlin, denn dort wird es so ge-
Magazin. nus liegt. handhabt, vgl. §4 „Die Bezeichnungen der Orga-
ne können auch in männlicher Form geführt wer-
An dieser Stelle möchten wir alle Leser ausdrücklich So sind mit „Liebe Leser“ sowohl männliche als den“ [2]. M. Schinagl
ermuntern, uns auch zu schreiben, was nicht so gut auch weibliche Leser korrekt angesprochen, da
gefällt. Wir bekommen sehr viel Lob (was uns natür- das Wort Leser zwar grammatikalische männ-
lich freut), aber vor allem durch Kritik und neue Ideen Ich möchte darauf hinweisen, dass die meis-
lich ist, dies aber nicht auf das biologische Ge- ten deutschen Begriffe wie Leser, Fußgänger,
können wir uns verbessern. schlecht des Lesers hinweist. Lehrer etc. androgyn sind. Sollten Sie Ihre Ein-
Leserbriefe und Anmerkungen Ich empfehle die Lektüre des Artikels jedem, dem stellung, die Sie zur Zeit vertreten, ändern, fügen
Frau gegen Mann der Erhalt der deutschen Sprache am Herzen Sie sich einem öffentlichen Druck, der gar nicht
Meine Meinung – als Mann – zur Frage der liegt und hoffe, ich konnte etwas zur Lösung existiert und machen sich, ich möchte fast sagen
Geschlechsneutralität ist, dass es ein nicht zu der (meiner Meinung nach aus Fehlinformatio- . . . lächerlich.
rechtfertigender Aufwand ist die LeserINNEN se- nen aufgestellten) Frage nach der Geschlechts- Genaugenommen ist „Leser“ geschlechterneu-
parat aufzuführen, wo doch die Intention so klar neutralität beitragen. Gordon Schultz tral, während „Leserinnen und Leser“ eine Wer-
ist. Meiner Meinung nach ist dies auch gram- tung enthält. Die Person, von der die Beschwer-
matikalisch zu rechtfertigen, denn die männliche Ich bitte Sie hiermit, auch in Zukunft kei- de kam, meinte es zwar gut, kannte aber wohl
Form eines Nomens ist imho geschlechtsneutral ne „geschlechterneutrale Sprache“ zu verwen- diesen wundervollen Artikel nicht: „Sprachfemi-
deklariert. Martin Weinelt den und verweise auf den Unterschied zwischen nismus in der Sackgasse“ [1]. Frank
Genus, dem grammatischen Geschlecht, und Se-
In der aktuellen Ausgabe stößt es mir schon xus, dem biologischen Geschlecht. In Ihrer Ausgabe 09/2009 stellen Sie die
beim Lesen des Editorials etwas sauer auf. Mathias Linkerhand Frage, ob ein Verzicht auf geschlechterneutrale
Ihr fragt, ob Ihr Eure Artikel geschlechtsneutral
Sprache Ihrem weiblichen Publikum zuzumuten
schreiben sollt. Ihr verwendet die Formulierung Leser all- sei. Als Teil dieser weiblichen Leserschaft lautet
gemein und meint damit auch die Leserinnen. meine Antwort: Ja, unbedingt!
Nun stelle ich mir die Frage, wo das denn bisher
Wie wäre es, stattdessen stets die Formulierung
nicht eingehalten wurde.
Leserinnen zu verwenden und damit auch die Und als Studentin der Germanistik und großer
Da ich fachlich sicher nicht ausreichend Wissen männlichen Leser zu meinen? Es ist doch kein Liebhaberin der deutschen Sprache möchte ich
habe, um dies genau zu erklären bzw. zu begrün- Geheimnis, dass zu wenig Frauen sich für Linux- dazu noch anmerken, dass diese geschlechter-
den, verweise ich nur auf einen Artikel von Arthur Themen interessieren. Damit würde klargestellt, neutralen Formulierungen für mich ganz eindeu-
Brühlmeier mit dem Titel „Sprachfeminismus in dass Frauen auf jeden Fall angesprochen wer- tig in die Kategorie „Vergewaltigung der deut-
schen Sprache“ fallen. Nicht nur, dass es aus rein Mein erster Gedanke dazu war: „Ach nee, pel weg. Es geht mir als Frau entsetzlich auf die
ästhetischer Sicht eine Zumutung ist, ein „Leser- nicht Ihr auch noch“. Nerven.
Innen“ im Fließtext zu betrachten oder gar visuell
Ich finde, dies ist in Wirklichkeit nicht die Frage Frauen sind zum größten Teil gleichberechtigt
über ein unnötig angehängtes „und Leserinnen“
„Frau gegen Mann“ sondern „Leserlichkeit kontra heutzutage und z. T. werden sie sogar bevorzugt
zu stolpern – ich halte diese Hervorhebung der
femifaschistische Propaganda“. Umsonst werden behandelt. Wenn jemand dann auch noch auf
weiblichen Form schlicht für unnötig. Nicht nur
solche Dinge wie z. B. [dieses Firefox-Plugin] [3], so einen Schrott bestehen muss, frage ich mich
im Deutschen ist es Usus, bei der Ansprache ei-
um Texte wieder leserlich zu machen, wohl kaum wirklich, ob da überhaupt ein vernünftiges Selbst-
ner geschlechtlich heterogenen Masse die männ-
angeboten. bewußtsein vorhanden ist.
liche Form zu gebrauchen. Wenn der Feminis-
mus auch in heutiger Zeit ernst genommen wer- Außerdem kennt man ja mittlerweile die Aus-
Und ja, man hat mir schon mehrmals vorgewor-
den möchte, sollte er künftig von solchen alber- wüchse des Genderwahns und ich bin es schlicht
fen, ich würde die Emanzipation kaputtmachen
nen Forderungen absehen. Franziska Pfeiffer leid, Dinge wie z. B. [dieses Bild] [4] ertragen zu
und diejenigen haben das tatsächlich ernst ge-
müssen. Und das Binnen-I war der erste Schritt
meint! Ich muss sagen, wenn die Emanzipation
Ich will nur zwei „Dankeschöns“ (und Danke- dazu. Principiis obsta!
von sowas abhängt, dann ist sie keine. Ich arbei-
schöninnen?) loswerden: Das erste betrifft Eu-
Ich ersuche daher, im Sinne der Lesefreundlich- te in einer reinen Männergruppe in der IT und bin
er Magazin im allgemeinen und das zweite eu-
keit zu entscheiden. Zumindest drei Leser (mich dort genauso akzeptiert wie jeder von den Jungs.
re Entscheidung zu dem strittigen Thema. End-
und zwei Bekannte, die genauso denken) würdet Das nenne ich Emanzipation, und zwar von bei-
lich Menschen, die vernünftig mit der deutschen
Ihr im Falle einer gegenläufigen Entscheidung den Geschlechtern. Jessica Borchert
Sprache umgehen . . .
verlieren. Christian Unterholzner
Das erinnert mich an einen einfach (mal wieder) Die geschlechterneutrale Sprache nimmt mitt-
herrlichen Monolog meiner Deutschlehrerin. Wir Gerade im Technikbereich fallen Frauen oft lerweile derart seltsame Formen an, dass z. B.
hatten in unserer Klasse mal wieder ein paar genug einfach unter den Tisch. Ich selbst erwar- das US-amerikanische Militär bei Drohnen, al-
Gastschüler aus Frankreich. Unsere Lehrerin be- te die weibliche Form oft schon gar nicht mehr, so „unbemannten Flugkörpern“ nicht mehr wie
trat den Raum und meinte: ich werde sowieso übersehen. Als Magazin, das ursprünglich von „Unmanned Aerial Vehicles“
sich mit Freier Software beschäftigt, fände ich es spricht, sondern mittlerweile von „Unpopulated
„Guten Morgen, allerseits . . . Oder sollte es heu- umso schöner, wenn ein gesellschaftlicher Blick Aerial Vehicles“, denn es könnte ja ebensogut
te nicht eher heißen: „Guten Morgen, liebe Schü- über den üblichen angeblich genderneutralen An- auch keine Frau darin sitzen . . .
lerinnen und Schüler!“? Egal . . . Ah, guten Mor- satz im EDV-Bereich hinaus geworfen werden
gen auch an euch . . . Oder besser „. . . liebe Gäs- würde. Wenn Ihr Euch für eine Veränderung ent- Ich persönlich halte Eure Herangehensweise für
tinnen und Gäste!“. Sagt mal, findet ihr es nicht scheiden würdet, würde ich mich sehr freuen! eine vernünftige – letztlich soll ja niemand willent-
auch zum (’tschuldigung) Kotzen, diese ständige Michaela Blomberg lich und wissentlich verletzt werden. Aber wie vie-
verbale feminine Emanzipation? Das geht zumin- le der heute lebenden Frauen fühlen sich denn
dest mir gehörig auf die Nerven . . . “ Bitte, bitte tut mir den Gefallen und lasst die- beispielsweise durch Literatur von Schiller, Goe-
Sebastian Billaudelle ses gräßliche „Leser/-innen“ und so einen Krem- the, Lessing o. Ä. verletzt – nur weil die im Traum
nicht daran gedacht haben, geschlechtsneutral Ich möchte Sie zum Verzicht auf eine „ge- über aufgeregt, respektive sich ausgeschlossen
zu schreiben? schlechtsneutrale“ bzw. genderkorrekte Textge- gefühlt, als nur von den männlichen Personen die
staltung beglückwünschen. Selbst journalistisch Rede war. Sebastian Liechti
Ich bin sicherlich nicht alleine mit der Meinung,
tätig empfinde ich Unsitten wie etwa das Binnen-I
dass es noch nie geschadet hat, die Kirche im
als Verunstaltung der deutschen Sprache die das Ich kann Sie nur in aller Form bitten, diesen
Dorf zu lassen . . . Hans-Stefan Suhle
Lesen von Texten unnötig erschwert. Ich kann Unsinn nicht mitzumachen. Das ist einfach nur lä-
nicht erkennen, dass die berechtigten Anliegen cherlich und macht einen Text komplett unlesbar.
Als Mann fühle ich mich beim Lesen von
von Frauen damit nennenswert zu unterstützen In meinen Augen ist das eine Vergewaltigung der
Artikeln, deren Autoren unter Weglassung aller
wären. Trotzdem grassiert zur Zeit das Gender- deutschen Sprache. Frank Hemmerling
sprachlicher Harmonie so krampfhaft um Ge-
Fieber. Letztens konnte ich einem Printmediun
schlechtsneutralität bemüht sind, oftmals abge-
sogar schon gegenderte Adjektive lesen wie et- Vielen Dank für die zahlreichen Leserbriefe.
grenzt. Wenn also ein Artikel mit „Liebe Leser
wa „kundInnenfreunlich“! Wie man sieht, sorgt das Thema für viel Diskus-
und Leserinnen“ beginnt, interpretiere ich das als
eine Ansprache, die sich vorrangig an Frauen sionsstoff, wobei die Meinung fast durchgehend
Es bleibt zu hoffen, dass auch diese Mode vom (sowohl von unseren männlichen als auch weib-
richtet, da außer der geschlechtsneutralen An- Zahn der Zeit zermahlen werden wird und Sie bis
rede, nur die lesenden Frauen begrüßt werden. lichen Lesern) in die gleiche Richtung geht. Ei-
[dahin] standhaft bleiben. Harald Hackenberg ne Verunglimpfung durch die deutsche Sprache
Mann fühlt sich unerwünscht und fehl am Platze.
durch Binnen-Is wird es bei freiesMagazin in ab-
Als Frau fühlte ich mich bei modernen, nach po- „Der Leser“ ist „geschlechtsneutral“, da es in sehbarer Zeit nicht geben, ebensowenig wie die
litischer Korrektheit strebenden Ansprachen al- der deutschen Sprache einen Unterschied zwi- Einführung einer „geschlechterneutraleren“ Spra-
lerdings vor den Kopf gestoßen: Bei Berufsbe- schen Genus (grammatikalisches Geschlecht) che, die Frauen und Männer extra erwähnt. Der
zeichnungen, die in alten Zeiten den Männern und Sexus (biologisches Geschlecht) gibt. „Le- Hinweis auf die Unterscheidung zwischen gram-
vorbehalten waren (Schreiner, Holzfäller, Schlos- ser“ ist ein Maskulinum und daher ist der dazu- matikalischer und biologischer Bezeichung gab
ser etc.), ist der maskuline Genus ja sehr häufig gehörige Artikel eben „der“. Das ist so, das war es oft genug.
zu finden. Würde ich als weiblicher Schreiner mit so, und das wird in absehbarer Zeit auch so blei-
„Liebe Schreiner und Schreinerinnen“ angespro- ben, da können Feministen noch so sehr auf die Davon unberührt bleibt natürlich die Verbindung
chen, klänge das in meinen Ohren so, als wol- Barrikaden gehen! :) zwischen der Bezeichnung und einer realen Per-
le man explizit darauf hinweisen, dass sich un- son. Das heißt, wir werden natürlich auch in Zu-
Die Redaktion macht mit ihrer Entscheidung mei- kunft von der Leserin Eva Mustermann sprechen,
ter den Angesprochenen außer den „normalen“
ner Meinung und der Grammatik nach alles rich- wenn diese direkt gemeint ist.
Schreinern auch einige Frauen befinden – so, als
tig! Dirk Sohler (Kommentar)
wäre es etwas besonderes als Frau des Schrei- Interessant ist im Übrigen das Wort „Person“, das
nerns mächtig zu sein. grammatikalisch weiblich ist, aber natürlich auch
Ich würde es sehr begrüssen, wenn Ihr in Eu-
Beim Worte „Leserin“ hätte ich den Eindruck, da rem Magazin beide Geschlechter (also die Lese- Männer mit einschließt. Darüber hat sich aber
wolle jemand darauf hinweisen, ich sei, obwohl rinnen und Leser) berücksichtigen würdet. Meine wohl noch kein Mensch beschwert. ;)
weiblich, doch lesekundig. Ralf (Kommentar) Freundin zum Beispiel hat sich auch schon dar- Dominik Wagenführ
Duden Korrektor Ein alkoholabhängiger Autofahrer. Bild können auf seiner Seite [8] herunter geladen
[Ich] kann bestätigen, dass der Duden Korrek- Jörg Zweier (Kommentar) und in eigenen (privaten und auch kommerziel-
tor sehr nützlich ist und viel mehr Fehler erkennt len) Bildern verwendet werden.
Der Roboter aus dem Film „Nr. 5 lebt“ [7] [Link
als die integrierte Lösung. Ab Version 6.0 ist auch
von der Redaktion eingefügt] bei seiner Suche Generell finde ich es sehr praktisch, wenn man
das Problem passé, dass der Computer bei der
nach einem kleinen blechernen Freund auf einer sich die Objekte, die man erstellt hat, in einer
Korrektur enorm ausgebremst wird. Also auf je-
Großbaustelle. sklicek (Kommentar) Datei speichert und nur noch in die Szenen ein-
den Fall zu dieser Version greifen, denn im Han-
bindet (so wie man es im Beispiel mit der Datei
del geistern auch noch viele 5.0-Versionen her-
Vielen Dank für die vielen Antworten. Inter- colors.inc mit den vordefinierten Farben se-
um. Flo (Kommentar)
essant ist, dass der Alkohol eine große Rolle hen kann). Dadurch kann man einmal definier-
bei den meisten Lösungen spielt. Wir interpre- te Objekte sehr leicht wieder verwenden. Man
Ratespiel tieren hier aber nichts hinein. ;) Die beiden Bei- braucht sie lediglich noch skalieren, drehen und
„Kleiner, blecherner Schrotthaufen sucht in Groß- träge mit „Wall-E“ bzw. „Nummer 5“ trafen dabei verschieben. Marcel Jakobs
baustelle Fahne fürs Leben. Was bin ich?“ [5] den Nagel fast auf den Kopf, denn es war na-
türlich der Protagonist des neuen freiesMagazin- L INKS
Ein alter Computer, ausgemistet, weil Win-
Programmierwettbewerbs gemeint (siehe „Erklä- [1] http://www.bruehlmeier.info/sprachfeminismus.
Vista nicht mehr darauf laufen wollte, sucht am
rungen zum zweiten Programmierwettbewerb“ htm
großen Schrottplatz nach einer Flasche Alkohol,
auf Seite 42). Dominik Wagenführ [2] http://www.b-rav.de/satzung.htm#s1
um die Erinnerungen an die Jahre der Windows-
Prostitution wegzuwaschen. [3] https://addons.mozilla.org/de/firefox/addon/6822
PovRay-Raytracing
Setsuna (Kommentar) [4] http://4.bp.blogspot.com/_-4sOUbNZmaw/
Beim Betrachten des Bildes von Gilles Tran
SWTcGVBAfOI/AAAAAAAAAug/cZDRxiSjBk0/
könnte einem glatt der Kitt aus der Brille flie-
Könnte eine Bierdose sein? Fahne = Alkohol- s1600-h/mannumtauschenwerbung.jpg
gen, wenn man denn eine tragen würde. (Wie
fahne, kleiner Schrotthaufen = zerdrückte Bierdo- [5] http://www.freiesmagazin.de/2009-09-05-
viel Arbeitszeit muss wohl ein versierter PovRay-
se. Daniela Wegert (Kommentar) ratespiel
Kenner investieren, um ein annähernd vergleich-
[6] http://www.imdb.com/title/tt0091949/
bares Ergebnis zu erzielen?) Marcel Jakobs,
Bin ein bald krepierender alter Rechner von herzlichen Dank für den interessanten Bericht, [7] http://www.imdb.com/title/tt0910970/
freiesMagazin, der zwischen den Druckfahnen der auch ein Beispiel beinhaltet, das zu allem [8] http://www.oyonale.com/modeles.php?lang=
von freiesMagazin nach dem ein oder anderen Überfluss auch noch auf Anhieb funktioniert und en&page=40
Fähnchen sucht – mit C-Zeichen drauf, um nicht so in der Lage ist, dem Anfänger ein kleines Er- Die Redaktion behält sich vor, Leserbriefe gegebe-
bald doch zu verrecken . . . folgserlebnis zu liefern. Stefan (Kommentar) nenfalls zu kürzen.
christoph (Kommentar)
Erstmal vielen Dank für das dicke Lob. Ich Die Leserbriefe kommentieren
Wall-E [6]. :-) [Link von der Redaktion einge- finde das Bild von Gilles Tran auch fantastisch.
fügt]. Mario (Kommentar) Unglaublich aber wahr: fast alle Objekte auf dem
Veranstaltungskalender
Messen
Veranstaltung Ort Datum Eintritt Link
Linux Info Tag Landau 10.10.2009 frei http://infotag.lug-ld.de
Ubucon Göttingen 16.10.-18.10.09 15 EUR http://www.ubucon.de
Linux-Kongress Dresden 27.10.-30.10.09 - http://www.linux-kongress.org/2009/
The OpenSolaris Developer Conference Dresden 28.10.-30.10.09 - http://www.osdevcon.org/2009
Linux Solution Day Osnabrück 29.10.2009 frei http://www.linux-solution-day.de
androidcamp Berlin 03.11.2009 frei http://androidcamp-berlin.mixxt.de/
World Usability Day Weltweit 05.11.2009 - http://www.worldusabilityday.de
OpenRheinRuhr Bottrop 07.11.-08.11.09 frei http://openrheinruhr.de
Brandenburger Linux-Infotag Potsdam 21.11.2009 frei http://www.blit.org/2009
(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
.
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.
Vorschau
freiesMagazin erscheint immer am ersten Sonntag eines Monats. Die November-Ausgabe wird voraussichtlich am 1. November unter anderem mit
folgenden Themen veröffentlicht:
Hardwarekompatibilität unter Linux
Testen mit Perl
Es kann leider vorkommen, dass wir aus internen Gründen angekündigte Artikel verschieben müssen. Wir bitten dafür um Verständnis.
Kontakt Redaktion
E-Mail Dominik Honnef Thorsten Schmidt
Postanschrift freiesMagazin Dominik Wagenführ (Verantwortlicher Redakteur)
c/o Dominik Wagenführ
Beethovenstr. 9/1 Satz und Layout
71277 Rutesheim Ralf Damaschke Yannic Haupenthal
Webpräsenz http://www.freiesmagazin.de Marcus Nelle Markus Schaub
Sebastian Schlawtow
Autoren dieser Ausgabe
Raoul Falk S.13 Korrektur
Florian E.J. Fruth S.4 Daniel Braun Raoul Falk
Martin Gräßlin S.9 Stefan Fangmeier Lukas Martini
Steve Klicek S.26 Johannes Mitlmeier Karsten Schuldt
Rainer König S.18
Marcel Jakobs S.30 Veranstaltungen
Mathias Menzer S.11 Ronny Fischer
Dominik Wagenführ S.39
Philipp Walther S.28 Logo-Design
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 und Beiträge in freiesMagazin unter der GNU-Lizenz für freie Dokumentation (FDL). Das Copyright liegt beim jeweiligen
Autor. freiesMagazin unterliegt als Gesamtwerk ebenso der GNU-Lizenz für freie Dokumentation (FDL) mit Ausnahme von Beiträgen, die unter einer anderen Lizenz hierin
veröffentlicht werden. Das Copyright liegt bei Dominik Wagenführ. Es wird die Erlaubnis gewährt, das Werk/die Werke (ohne unveränderliche Abschnitte, ohne vordere und ohne
hintere Umschlagtexte) unter den Bestimmungen der GNU Free Documentation License, Version 1.2 oder jeder späteren Version, veröffentlicht von der Free Software Foundati-
on, zu kopieren, zu verteilen und/oder zu modifizieren. Die xkcd-Comics stehen separat unter der Creative Commons-Lizenz CC-BY-NC 2.5. Das Copyright liegt bei Randall Munroe.