Sonntag, 12. Dezember 2010

Programming with Haiku, Lektion 2-15

Während die Gazette offline war, hat DarkWyrm weiter fleißig Lektionen zur Programmierung mit Haiku geschrieben. Das Erscheinen des 15. Teils bietet Anlass die verpassten Artikel zusammenzufassen.

#2: C++ Strings und noch mehr STL

Die 2. Lektion wirft als erstes einen Blick auf C++ Strings aus der Standardbibliothek und einige derer nützlichen Methoden wie beispielsweise find_first_not_of. Dann geht es weiter mit der Vorstellung weiterer STL Container (map, set, multimap, multiset) und Container Adapter (queue, priority_queue, stack), die die Art des Zugriffs auf den jeweiligen Container regeln. Anschließend werden die ganzen Methoden der verschiedenen Container beschrieben, mit denen deren Inhalte manipuliert werden können.
Das ist eine ganze Menge Holz! Aber keine Sorge, wenn man das alles nicht aufs erste, zweite oder auch dritte Durcharbeiten verinnerlichen kann. Die Haiku API bietet mit BList und Trackers BObjectList Werkzeuge, die man fast immer als Alternativen zu Containern verwendenden kann. Ähnlich verhält es sich mit C++ Strings und Haikus BString. Im Grunde ist es einfach nur gut über diese Dinge Bescheid zu wissen, insbesondere wenn man es mit dem Code anderer Leute und portierten Quellen zu tun hat. Und natürlich, wenn man möglichst plattformunabhängigen Code schreiben will.

#3: Streams und Exceptions

Im 3. Teil werden zuerst die C++ Versionen der In/Output-Streams cout, cin und cerr vorgestellt. Dazu wird erst die C-Variante eines Programms gezeigt, das eine Datei auf die Konsole ausgibt, und danach die C++ Variante. Anschließend werden nützliche Methoden der In/Output-Streams wie get, getline, write und seekp besprochen und die Möglichkeiten der Fehlerauswertung.
Weiter geht es mit der Ein/Ausgabe und deren Formattierung mittels cin und cout und deren Manipulatoren.
Auf Exceptions wird nur ganz kurz eingegangen; sie spielen in Haiku keine große Rolle, da die API sowieso schon eine gute Fehlerauswertung anbietet und Exceptions einiges an Performance kosten.

#4: Versionskontrolle

Lektion 4 legt eine kleine Pause ein was die Programmierung angeht und widmet sich einem Thema, das Hobbyprogrammierer oft vernachlässigen: den Segnungen der Versionskontrolle. Nutzt man sie, lassen sich Änderungen im Sourcecode leicht rückgängig machen oder verschiedene Lösungswege auf einfache Weise ausprobieren. Auch die Zusammenarbeit mit anderen wird sehr erleichtert.
DarkWyrm stellt einige Systeme dafür kurz vor, CVS, SVN, Git, Mercurial, um dann praxisnah die Einrichtung anhand von Mercurial zu zeigen.
Seit kurzem kann übrigens auch die IDE Paladin mit diesen Versionskontroll-Systemen umgehen.

#5: Praxis - Paladin Projektdateien laden

Um das Gelernte der vorangegangenen Lektionen mit einem Praxisbeispiel zu vertiefen, zeigt die 5. Lektion all die vorgestellten Techniken, um Paladin Projektdateien einzulesen.

#6-11: Rückblick auf den vorherigen "Kurs"

Die Teile 6 bis 11 werden später nachgereicht. Es werden leicht überarbeitete Kapitel aus dem ersten C++ Kurs "Learning to Program with Haiku".

#12: Attribute

Mit Lektion 12 sind die allgemeinen C++ Themen abgeschlossen und es wird durchgestartet zur Haiku API. Den Anfang machen Attribute; wie man mit ihnen eigene Daten an Dateien hängt und wie man die systemweiten Attribute nutzt.

#13: Queries

Nachdem beim letzten Mal die Arbeit mit Attributen gezeigt wurde, steht in Teil 13 die Suche nach ihnen mittels Queries auf dem Plan. Es wird die Syntax eines Query-Begriffs in Trackers Find Panel erklärt und wie man das programmiertechnisch umsetzt. Neben der Möglichkeit eines einfachen BString als Such-String, gibt es auch noch die etwas komplizierte Variante des Zusammenbauens mittels "Reverse Polish Notation (RPN)".
Schließlich wird auch die besondere Spielart der Live-Query gezeigt, bei der man durch BMessages informiert wird, wenn sich die Trefferliste geändert hat, falls Dateien dazugekommen oder aus dem Suchmuster rausgefallen sind.

#14: Node-Monitoring

Mit der Überwachung von Dateien und Ordnern bzw. Benachrichtigungen beim Einhängen von Partitionen, zeigt Lektion 14 ein weiteres Kern-Feature von Haiku. Ähnlich wie bei Live-Queries wird man durch BMessages darüber informiert, ob sich in einem Ordner etwas getan hat oder eine Datei verändert wurde. Über welche Änderungen man informiert werden möchte, lässt sich dabei genau festlegen.

#15: Eigene Dateitypen

Lektion 15 zeigt wie man aus seinem Programm heraus neue Dateitypen erzeugt. Neben einem eigenen MIME Typ lässt sich dabei unter anderem auch eine Dateiendung, Beschreibung und Icon vergeben und die Anwendung festlegen, die diese Datei standardmäßig öffnen soll. Etwas komplizierter wird es bei der Festlegung einer "Sniffer Rule": mit ihr können Dateien dieses Typs anhand immer gleicher Merkmale im Aufbau automatisch "erschnüffelt" werden.
Zu guter letzt können einem Dateityp auch immer gleich systemweite Attribute angehängt werden, wie es z.B. mit AUDIO:artist, AUDIO:title und AUDIO:album bei MP3-Dateien der Fall ist.


Alle Teile von "Programming with Haiku" finden sich in DarkWyrm's Library.

Keine Kommentare:

Kommentar veröffentlichen