Sonntag, 28. Februar 2010

C++ Kurs, Lektion 7

Der 7. Teil beginnt mit einem Blick aufs Speichermanagement. Erstmal wie es unter C läuft, die Besonderheiten unter C++ kommen später. Es geht also um malloc(), free() und Konsorten. Der zweite Schwerpunkt dieser Lektion beschäftigt sich mit dem Binärsystem und den Binäroperatoren AND, OR, XOR und NOT, um einzelne Bits ein- und auszuschalten. Außerdem wird gezeigt, wie durch Bitschieben schnell durch 2^n geteilt und multipliziert werden kann.
Zum Abschluss löst DarkWyrm wie immer die letzte Bugjagd auf und organisiert eine neue.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

Sonntag, 21. Februar 2010

Haiku Inc. stellt ein!

Um die Entwicklung von Haiku zu beschleunigen, möchte Haiku Inc. in Zukunft versuchen öfters mal einen Entwickler für einige Wochen Vollzeitarbeit anzuheuern. Dies bietet die Möglichkeit, sich für einige Zeit fest auf ein bestimmtes Gebiet zu konzentrieren, da man nicht auf die wenigen Stunden täglich beschränkt wird, die einem seine berufliche Arbeit lässt.

Der erste Teilnehmer an diesem Programm ist Stephan Aßmus, der für 160 Stunden an Haiku arbeiten wird. Er hat schon in den letzten Wochen am WebKit Port und dem darauf aufsetzenden Browserprojekt "HaikuLauncher" (beides Baustellen von Ryan Leavengood und Maxime Simon) gearbeitet. Seine Auftragsarbeit wird sich ebenfalls auf dieses Gebiet konzentrieren.
Natürlich kann das durch Spenden finanzierte Programm keine marktüblichen Preise zahlen. Es versucht nur die Ausfälle ein wenig auszugleichen, um die sonst nicht für die Haiku-Entwicklung verfügbare Zeit zu kaufen.

Damit auch in Zukunft Entwickler an diesem Programm teilnehmen können, bedarf es in erster Linie Spenden. Neben Einmalspenden, findet sich auf Haikus Spendenseite auch die Möglichkeit zu kleinen monatlichen Spenden.
Wer selber gern an diesem Programm mitmachen möchte sollte sich mit seinem Angebot an info@haiku-os.org oder haiku-inc@freelists.org wenden. Wichtig dabei:

  • Länge der Auftragsarbeit
  • Stundensatz in US-Dollar
  • genaue Beschreibung des Projekts
Einzige Einschränkung für Bewerber: Man muss bereits Schreibzugriff auf Haikus SVN Repository besitzen. Dadurch ist sichergestellt, dass es sich um einen Entwickler handelt, der mit Haiku und seiner Entwicklerstruktur vertraut ist und die Zeit optimal genutzt werden kann.

Samstag, 20. Februar 2010

C++ Kurs, Lektion 6

Die 6. Lektion stellt weitere Möglichkeiten von Schleifen mittels while bzw. do-while vor. Außerdem wird die Auswertung durch switch-case Blöcke gezeigt und wie die bedingte Zuweisung (Bedingung ? Wert-wahr : Wert-unwahr) anstatt umständlicher if-else Konstruktionen benutzt werden kann. Den Abschluss bildet wieder eine Bugjagd und die Lösungen zur vorigen Lektion.
Außerdem werden nochmal die Erkenntnisse der ersten Lektionseinheit (1-5) in kurzen Stichpunkten wiederholt.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

Sonntag, 14. Februar 2010

Mit malloc_debug auf Bugjagd

Michael Lotz hat sich mal hingesetzt und ausführlich beschrieben, wie man mit malloc_debug Speicher-Bugs jagt. Jede Anwendung lässt sich mit dem Debug Heap starten, indem man sie vom Terminal aus mit einer speziellen Umgebungsvariablen aufruft:

LD_PRELOAD=libroot_debug.so dieAnwendung

Das Syslog enthält dadurch hilfreiche Informationen, die sich verfolgen lassen mittels:

tail -F /var/log/syslog

In seinem Artikel gibt Michael zu einer Reihe üblicher Bugs Code-Beispiele, woran man sie erkennt, und Tips zur Vermeidung. Da ich keine Ahnung von deren deutscher Bezeichnung habe, hier die Liste der besprochenen Bugs im Original...:

  • Using Uninitialized Memory
  • Using Already Freed Memory
  • Double Free
  • Misaligned Free / Free of Unallocated Memory
  • Overwriting Memory Past the Allocation
Daneben wird noch auf fortgeschrittene malloc_debug Features hingewiesen, die allerdings entsprechende minimale Änderungen im Sourcecode und bei dessen Linken erfordern:
  • Interval Based and Manual Wall Checking
  • Paranoid and Manual Validation
  • Dumping Heap and Allocation Info
Ein Spitzenartikel, den sich jeder Entwickler, und wer es werden will, in seine Bookmark Sammlung aufnehmen sollte!

Samstag, 13. Februar 2010

C++ Kurs, Lektion 5

Lektion Nr. 5 des C++ Kurses beschäftigt sich mit Arrays, Strings und Zeigern. Es gibt wieder ein Projekt als Hausaufgabe: Die Übersetzung eines vom User eingegebenen Texts in seine ASCII Werte. Auch eine Bugjagd ist wieder dabei. Mit der fünften Lektion sind wir laut DarkWyrm etwa auf halben Wege zum ersten echten Haiku Programm mit Fenstern und Buttons usw.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

FOSDEM X Quickie

Alexandre Deckner, der mit François Revol, Olivier Coursière und Niels Reedijk (und am Nachmittag auch noch Jerôme Duval) auf der FOSDEM X war, hat einen kleinen Bericht mit Fotos von der Veranstaltung gepostet.

Der Alt-OS Devroom, der ganz allein von François organisiert wurde und in dem auch alle Haiku relevanten Vorträge gehalten wurden, war offenbar sehr gut besucht. Als Alexandre ankam, war er wegen Überfüllung geschlossen, so dass er Oliviers Haiku-Einführungs-Vortrag verpasste. Als er endlich Eintritt fand, musste er erstmal mit ungefähr 30 anderen Leuten stehen, weil nicht genügend Stühle da waren...
Am Nachmittag gab es dann nicht mehr so große Platzprobleme und es konnten ein paar Notebooks rausgezogen werden, um Haiku zu zeigen und etwas mit anderen darüber zu reden. Leider musste Alexandre die Veranstaltung schon bald wieder verlassen. Vielleicht haben ja die anderen Teilnehmer noch einen ausführlicheren Bericht in petto. Ansonsten existieren von den Vorträgen einige inoffizielle PDFs.

Samstag, 6. Februar 2010

C++ Kurs, Lektion 4

Im 4. Teil von DarkWyrms C++ Kurs geht es um die Verwendung von for-Schleifen und if-else Bedingungen, und die logische Verknüpfung von Ausdrücken mittels AND, OR und NOT. Die Konzepte werden mit einem kleinen Programm zur Kreditrechnung verdeutlicht. Zum Schluss gibt es wieder eine Bugjagd und die Auflösungen der Lektion 3.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

Donnerstag, 4. Februar 2010

Haiku auf der FOSDEM X

Am Wochenende, 6./7. Februar 2010, findet in Brüssel zum 10. Mal das große Opensource Treffen FOSDEM statt. Haiku wird zwar auch diesmal vertreten sein, allerdings nicht mit einem eigenen Stand (bzw. wie beim letzten Mal zusammen mit den ReactOS Jungs). Dafür wird es am Sonntag diverse Vorträge im Alt-OS Devroom geben.
Der Alt-OS Devroom entstand aus der Idee heraus, dass die unterschiedlichen Betriebssysteme so zusammenarbeiten und gemeinsamen Code und Strategien entwickeln können. Beim letzten Google Summer of Code Mentor Summit wurde dazu das Rosetta OS Project gegründet, das auch die Organisation des Alt-OS Devrooms übernahm.

Neben François Revol werden auch Olivier Coursière, Alexandre Deckner und Niels Reedijk die Haiku Fahne auf dieser FOSDEM hochhalten. François scheint dabei einen besonders vollen Terminplan zu haben...

Mittwoch, 3. Februar 2010

15. Thank You Award für Colin Günther

Der 15. Thank You Award geht an Colin Günther für seine kontinuierliche Arbeit an Haikus WLAN Stack. Herzlichen Glückwunsch, Colin, und vielen Dank auch an alle anderen Kandidaten, die diesmal leer ausgingen. An dieser Stelle sei auch noch mal auf die WLAN Verschlüsselungs-Bounty hingewiesen, die helfen könnte dieses wichtige Feature für den Alltagseinsatz schneller zuverwirklichen.

UPDATE:
...und jetzt ist auch schon das Mini-Interview mit Colin online:

Wie alt bist Du und womit verdienst Du Dein Geld?

Ich bin 27 und habe eine super Familie, die mich unterstützt damit ich mich voll aufs Studium konzentrieren kann.

In der Nominierung heißt es, Du hättest Haiku Wifi-Unterstützung gebracht. Wie schwer (oder einfach) war das?

Schwer, würde ich sagen. Um den FreeBSD Wifi Stack zu portieren, musste ich mehrere Systeme wirklich verstehen. Wie das FreeBSD Netzwerk Subsystem funktioniert und wie Haikus vorhandene Kompatibilätsschicht das Verhalten seines Vorbilds emuliert. Außerdem musste ich die Funktionsweise des FreeBSD Wifi Stacks verstehen und wie dieser mit seinem Subsystem zusammenspielt. Und natürlich musste ich mir Haikus Netzwerk Subsystem ebenfalls einverleiben.
Und schließlich waren da auch noch die 1000 Seiten des IEEE Std 802.11 Dokuments, in dem ich mich zurecht finden musste, um die benötigten Informationen zu finden. Sprich, ich musste es von vorn bis hinten durchlesen.


[Den Rest des Interviews konnte ich nach dem dem Serverumzug leider mangels Backup nicht wieder herstellen.]