Dienstag, 27. April 2010

Sieben GSoC Studenten auf einen Streich

Eigentlich nur folgerichtig: nach fünf Plätzen in 2008 und sechs in 2009 kann das Haiku Projekt dieses Jahr sieben Studenten beim Summer of Code 2010 verbuchen! Eigentlich wären es nur sechs gewesen, aber Dank Matt Madia, der Haikus GSoC Präsens managed, konnte in den letzten Tagen der Meldefrist noch der siebte Platz für Haiku gesichert werden.
Noch ein paar weitere Zahlen: Insgesamt haben sich 367 Organisationen um GSoC Plätze bemüht und 5539 Bewerbungen von Studenten gingen ein. Letztendlich wurden 152 Organisationen angenommen, darunter auch Haiku, bei dem allein 26 Bewerbungen eingingen.

Wie schon im letzten Jahr wurden die Studenten angehalten zusammen mit ihrer Bewerbung einige Tickets im Bugtracker zu lösen. Dadurch lässt sich ein Bewerber schon etwas einschätzen und es ist sicher gestellt, dass schon mal eine funktionierende Entwicklungsumgebung vorhanden ist wenn es los geht. Da Bewerbungen als auch Patches alle von so außerordentlicher Qualität waren, stellte sich die Auswahl der Studenten als überaus schwierig heraus.
Nach drei Stunden IRC Konferenz der Mentoren stand noch nicht mal der sechste Platz fest... Dies sind Haikus diesjährigen GSoC Studenten und ihre Mentoren:

  • Atis Elsts
    Mentor: Alexander von Gluck IV
    Projekt: IPv6 Implementierung
  • Janito Vaqueiro Ferreira Filho
    Mentor: Jérôme Duval
    Projekt: ext3 Dateisystem Implementierung
  • Lucian Adrian Grijincu
    Mentor: Niels Sascha Reedijk
    Projekt: lkl-haiku-fsd: generischer Haiku Dateisystem Treiber für alle von Linux unterstützten Dateisysteme
  • Christopher Humphries
    Mentor: David McPaul
    Projekt: Verbesserungen und Erweiterungen für den Media Player
  • Christophe Huriaux
    Mentor: Stephan Assmus
    Projekt: Implementierung der Grundlagen eines Services Kit
  • Nathan Mentley
    Mentor: Michael Lotz
    Projekt: Haiku x86_64 Port
  • Alex Wilson
    Mentor: Adrien Destugues
    Projekt: Perfektionierung der Layout API
Da sich natürlich wieder viel mehr Studenten beworben haben als GSoC Plätze zur Verfügung stehen, geht ein besonderer Dank an diejenigen, die leider nicht genommen werden konnten: Duane Bailey, Sean Bartell, Dario Casalinuovo, Akshay Gupta, Francesco Piccinno, Ankur Sethi und Andras Sevcsik.
Außerdem gebührt Google Dank für sein Summer of Code Programm, dessen Administratoren Carol Smith, Cat Allman, Chris DiBona und Ellen Ko; dem Melange Team und natürlich den Haiku Mentoren.

C++ Kurs, Lektion 16

Die 16. Folge beschäftigt sich ausnahmsweise nicht wieder mit der Haiku API, sondern mit einigen C++ Grundlagen. Den Anfang macht das Überladen von Funktionen und Operatoren, um je nach übergebenen Parametern unterschiedliche Funktionen aufzurufen bzw. um auf bestimmte Objekte speziell abgestimmte Operatoren verwenden zu können. Weiter geht es mit dem Einsatz von Kopier-Konstruktoren, mit denen sichergestellt wird, dass auch auf dem Heap angelegte Eigenschaften eines Objekts mitkopiert werden, was ansonsten zu schwer zu findenden Fehlern führen kann.

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

Dienstag, 20. April 2010

C++ Kurs, Lektion 15

Die 15. Lektion gibt einen Überblick über den Aufbau der Haiku API und stellt kurz die einzelnen Systembibliotheken, die sogenannten "Kits", vor. Anschließend wird auf die besondere Bedeutung des "Messaging" in der Haiku Programmierung eingegangen, die verschiedenen Sender und Empfänger solcher Nachrichten aufgezählt und die zentrale Stelle von deren Management im eigenen Programm vorgestellt: Die MessageReceived() Funktion, in der man auf alle möglichen Benachrichtigungen reagieren kann.
Der Quellcode für ein Beispielprogramm, bei dem man durch Klicken eines Buttons den Fenstertitel ändert, liegt diesmal auch als 15ClickMe.zip zum Download bereit. Trotzdem sollte man den Code besser von Hand abtippen, da man sich dadurch alles viel besser einprägen und nachvollziehen kann.


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

Samstag, 17. April 2010

BeGeistert 022 - Workshop Montag

Beim BeGeistert 021 im Oktober 2009 gab es zum ersten Mal einen Workshop, bei dem die Haiku API etwas näher vorgestellt wurde. Selbst war ich damals nicht dabei, aber anscheinend wurde Interesse an einen eigenen Workshop-Tag bekundet, der zusätzlich zum normalen BeGeistert Wochenende stattfinden soll.
Also wurde jetzt beim BG 022 der Montag zum "Workshop Monday" erklärt, der für 75 EUR dazu gebucht werden konnte. Leider haben sich dann doch nur zwei Leute dafür eingeschrieben: Finn und ich. Weil ich erst letzten Dezember mit dem Programmieren angefangen habe, buchte ich das Ding damals mit der Vorstellung, dass ich mir als einer unter vielen die Sache anschauen werde und hoffentlich das ein oder andere auch verstehen würde. Schlimmstenfalls wär es eine Spende an die HSA gewesen...

Und so war es dann ja auch, nur dass es nicht ein Raum voll Leute war, sondern nur Finn und ich mit Stephan im Raum zusammen mit den anderen Code Sprintern. Stephan zeigte uns über etwa fünf Stunden einige Programmiertechniken, die eleganten Code ermöglichen, der sehr modular ist und daher auch leicht zu warten ist. Mit Benachrichtigungen via Listener, Reference Counting und Actions wurde ein kleines Demoprogramm nach und nach erweitert um Objekte zu synchronisieren, Fenster zu managen und einen Undo/Redo Puffer zu implementieren. Das Demoprogramm nutze eine allgemeine Shape Klasse um in zwei Fenstern einige Rechtecke darzustellen. Verschob man ein Rechteck mit der Maus in einem Fenster, bewegte sich das entsprechende Rechteck im andern Fenster synchron dazu.

Zu sehen, mit wie wenig Code einige Dinge implementiert werden können, war schon faszinierend, auch wenn ich zugeben muss, dass einige Details ein wenig zu hoch für einen Anfänger wie mich waren. Ich habe allerdings vor den Code noch öfters mal durchzuarbeiten, während ich etwas mehr C++ Wissen ansammle... :)

Generell soll es auch beim nächsten BeGeistert wieder einen Workshop Monday geben, hoffentlich dann mit größerer Beteiligung. Ich kann mir vorstellen, dass gerade etwas erfahrenere Programmierer noch in viel größerem Maße vom individuellen Zugang zum Wissen eines Core-Entwicklers profitieren können. Also, plant schonmal einen zusätzlichen Urlaubstag im Oktober ein. :)

Mittwoch, 14. April 2010

C++ Kurs, Lektion 14

In der 14. Folge der Reihe schreiben wir unser erstes echtes Haiku Programm mit einer grafischen Oberfläche. Über eine BApplication Instanz stellen wir den Kontakt zum app_server her, öffnen ein BWindow und zeigen darin einen Text in einem BStringView. DarkWyrm benutzt hierzu das von ihm entwickelte Paladin, der Code funktioniert aber natürlich genauso unter jeder anderen IDE bzw. für Leute, die lieber nur mit einem Texteditor arbeiten und im Terminal kompilieren.

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

Sonntag, 11. April 2010

BeGeistert 022, the Cola Coder has returned

So, das 22. BeGeistert ist geschafft! Bis auf die getreuen CodeSprinter Adrien Destugues, Clemens Zeidler, Axel Dörfler, Ingo Weinhold, Oliver Tappe, Michael Lotz und Stephan Aßmus, die noch bis Ende der Woche einen Haiku Programmier Marathon hinlegen. Leider war die Zahl der Teilnehmer nicht so überwältigend hoch wie kurz nach R1/alpha1 beim letzten Mal im Oktober.
Trotzdem waren knapp 30 Leute da; neben alten Bekannten auch ein neuer Entwickler, Sebastian, der sich gleich sehr gut einlebte. Wie immer nutzten alle die Gelegenheit um ihre aktuellen Projekte und Fortschritte vorzuzeigen und darüber zu fachsimpeln. Jeder hatte sein Notebook dabei und es bildeten sich um die einzelnen Rechner kleine Grüppchen, die sich bald auch wieder auflösten und weiter zogen. Und natürlich wurden die Haiku Entwickler oft zum Tatort gerufen, falls sich ein System mal ins Kernel Debugging Land verabschiedete oder andere Schwierigkeiten auftraten. Viele der Probleme konnten dann auch gleich vor Ort direkt gelöst werden.


[Den Rest des Artikels konnte ich nach dem dem Serverumzug leider mangels Backup nicht wieder herstellen. Es gibt allerdings noch eine Englische Version.]

Donnerstag, 8. April 2010

Paladin 1.2 veröffentlicht

DarkWyrm hat ein Update seiner Entwicklungsumgebung Paladin veröffentlicht. Die IDE steht in der Tradition von BeOS BeIDE: schnell und einfach in der Bedienung, ohne gewöhnungsbedürftige jam oder makefiles. Als Editor kommt ein zur Zeit nur minimal angepasster Pe zum Einsatz.
Neben einigen Bugfixen und kleinen Verbesserungen bei der Bedienung, besitzt die Version 1.2 einige neue Funktionen, die den Entwicklungsprozess noch etwas schneller und angenehmer machen. Mittels "Code Templates" lassen sich oft benutzte Standardlösungen projektübergreifend nutzen und auf Stand halten, ohne gleich eine Bibliothek daraus zu machen. Ein neuer Compiler Cache "ccache" verkürzt die Wartezeit bei größeren Projekten. Über eine Import Funktion lässt sich schnell ein neues Projekt aus einem bestehenden machen und im Werkzeug Menü ist ein Regular Expression Tester dazu gekommen, mit dem man bequem an Regulären Ausdrücken rumfeilen kann, bis alles passt.

Sonntag, 4. April 2010

C++ Kurs, Lektion 13

Die 13. Folge des Kurses beschäftigt sich mit einigen der herausragenden Merkmale von C++: Vererbung, virtuelle und statische Funktionen, sowie das Überladen von Funktionen. Bis zur nächsten Folge sollte man sich mal im BeBook die Klassen BApplication, BWindow und BView ansehen. Dann gehts nämlich los mit dem ersten waschechten Haiku Programm.

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

Freitag, 2. April 2010

16. Thank You Award Gewinner: Diver

Mit großem Abstand vor den anderen Kandidaten geht der 16. Thank You Award an Diver, Sergei Reznikov. In den letzten Jahren hat er ungefähr 800 Tickets beim Haiku Bugtracker aufgegeben; das sind ca. 15% aller Einträge! Bugs zu dokumentieren ist der erste Schritt sie zu lösen und damit ein nicht zu unterschätzender Beitrag zur Entwicklung von Haiku.
Vielen Dank an Diver und natürlich auch an alle anderen TYA-Bewerber!