Donnerstag, 26. Februar 2009

Haiku auf den 11. Chemnitzer Linuxtagen

Wie schon im letzten Jahr wird Haiku auch diesmal wieder bei den Chemnitzer Linuxtagen (14./15. März 2009) vertreten sein. Daniel Wünsch hat wieder einen kleinen Stand organisiert, auf dem er zusammen mit Axel Dörfler und Stephan Aßmus versuchen wird Haiku den Besuchern näherzubringen. Wer die Jungs dabei unterstützen möchte oder auch nur mal vorbeischauen will um Hallo zu sagen, ist herzlich dazu eingeladen. Mit Daniel kann direkt unter tombhadac at gmx de Kontakt aufgenommen werden.

In 5 Schritten zum eigenen Browser

Ryan Leavengood hat sich Gedanken zu einem eigenen Browser für Haiku gemacht.

In die Browserszene ist in letzter Zeit einige Bewegung gekommen. JavascriptCore Extreme, V8 und TraceMonkey sind schnelle JavaScript Engines und mit Google's Chrome steht ein mächtiger Opensource Browser zur Verfügung, der zum Rendering auf WebKit setzt. WebKit wurde vor über einem Jahr von Ryan auf Haiku portiert und zusammen mit Andrea Anzani und Stephan Aßmus soweit gebracht, dass zumindest einige HTML Seiten gerendert werden konnten. Angesichts der Einschränkungen im Mozilla Projekt und Anforderungen von Firefox 3 (das Cairo Framework müsste portiert werden), scheint ein WebKit basierter Browser vielversprechend. So sehen das auch die bisherigen Hauptentwickler des Firefox 2 Ports.

Einen Browser zu entwickeln ist natürlich ein Riesenprojekt. Ryan sucht dazu nach Mitstreitern und umreißt 5 Schritte zu dessen Verwirklichung:

  1. Der aktuelle WebKit Code muss "re-ported" werden. Dabei muss nicht gleich alles 100%ig laufen, aber das Buildsystem muss funktionieren. Im letzten Jahr hat sich v.a. im JavaScriptCore viel getan und dieser erste Schritt könnte sich daher etwas ziehen. Ryan schlägt vor, den aktuellen WebKit Code frisch auszuchecken und alles nötige vom ursprünglichen Port zu übertragen. Der ist übrigens per anonymous hier erhältlich: http://ryanleavengood.com/svn/repo/WebKit/trunk/

  2. Es muss eine Entscheidung für das Build Tool getroffen werden. Bleibt man bei /Jam/, was sich zukünftig gut in Haikus Buildsystem integrieren ließe, oder benutzt man eines der existierenden WebKit Build Systeme, welches dann vom WebKit Projekt up-to-date gehalten würde? Für Punkt (1) sollte man vielleicht erstmal beim jetzigen Jam System bleiben.

  3. Sind die beiden ersten Punkte abgeschlossen, müssen die noch fehlenden Bereiche in den Port integriert werden. Andere Dinge, wie das Thread-Modell oder Affine Transformationen, müssen verbessert bzw. neu dazu kommen.

  4. Bereits während oben genannte Arbeiten laufen, sollte mit einem Browser-Gerüst begonnen werden. Entweder man beginnt von vorne oder man entwickelt einen bestehenden opensource BeOS Browser weiter. Google's Chrome ist zwar sehr schön, bedeutet aber auch sehr viel Code, der wahrscheinlich ähnlich aufwendig zu portieren ist wie das WebKit selbst. Nichtsdestotrotz ließen sich einige Chrome Komponenten nutzen, wie die "Omnibar". Auch die gelungene Benutzeroberfläche könnte zur Nachahmung inspirieren.

  5. Wenn man dann mal ein anständig funktionierendes WebKit und Browsergerüst hat, können mehr Leute alles testen und der übliche Entwicklungszyklus kann beginnen: neue Features, Bugfixe, Tests, Release usw.


Sind die anstrengendsten Punkte 1-3 erstmal geschafft, sollte der angenehme Teil beginnen und hoffentlich noch weitere Entwickler anziehen, die sich ähnlich einfach einbringen können, wie das jetzt bei Haiku geschieht. Das Projekt soll bei HaikuPorts unterkommen. Wer mithelfen will meldet sich am besten im entsprechenden Thread der Developer Mailingliste.

Mittwoch, 25. Februar 2009

Flash für Haiku

Nachdem unter Haiku nun auch mit dem GCC4 gearbeitet werden kann, werden einige Portierungen möglich, die sich viele schon lange gewünscht haben. So hat Adrian Panasiuk kürzlich die Haikuware Bounty für den Gnash-Port angenommen, mit dem Flash Dateien abgespielt werden können. Die Bounty beinhaltet ein Plug-in für Mozilla und einen eigenen Player. Das Browser-Plugin lässt noch ein wenig auf sich warten, dafür war der ursprünglich anvisierte Termin, 1. März 2009, etwas zu optimistisch. Adrian bleibt aber am Ball.

Der Player kann bereits jetzt ausprobiert werden, sofern man ein mit dem GCC4 gebautes Haiku Image bzw. GCC2/4 Hybrid Image verwendet. Durch das statische Verlinken ist das Gnash Paket mit 26MB (90MB nach dem Entpacken) ein ziemliches Schwergewicht, konnte durch Entfernen nicht benötigter Daten aber immerhin schon von den ursprünglichen 136MB auf 1/5 abgespeckt werden.
Details zum Port und Instruktionen zur Installation befinden sich auf einer eigenen Webseite. Dort kann man sich auch ein Skript runterladen, das die Wiedergabe von Youtube Videos automatisiert. Adrian merkt jedoch an, dass es einige Flash Dateien gibt, die auch unter Linux mit Gnash nicht abgespielt werden können. In solchen Fällen lässt sich nur hoffen, dass diese Probleme bei der Weiterentwicklung von Gnash gelöst werden.

Montag, 16. Februar 2009

GUI Evolution

Nachdem in letzter Zeit Experimente und Mock-ups für eine modernisierte grafische Oberfläche diskutiert wurden, befindet sich jetzt eine konkrete Umsetzung in den aktuellen Haiku Images. Stephan Aßmus, der wieder mal seine grafischen Talente unter Beweis stellt (von ihm stammen auch die meisten Vektor-Icons,
nicht nur die ausgefeilte Technik dahinter), präsentiert eine dezent modernisierte Oberfläche, die auch eingefleischte BeOS Veteranen überzeugen dürfte. [ETA: Viele der Neuerungen basieren offensichtlich auf Denis Washington's Patch.] Das Ganze ist noch sehr neu und wird in der nächsten Zeit noch weiter verfeinert werden.

Mittwoch, 11. Februar 2009

François Bericht von FOSDEM 09

François Revol war zusammen mit Alexandre Deckner, Olivier Coursière und Rémi Grumeau beim diesjährigen FOSDEM und berichtet auf seinem Haiku Blog was er dort so erlebt hat.

Wie schon beim letzten Mal scheiterte er beim Versuch Platz in einem "Devroom" zu ergattern, weil die Nachfrage einfach so groß war. Statt dessen bekam Haiku einen normalen Stand, was wahrscheinlich gar nicht schlecht war, da es schon schwer genug ist einen Stand durchgehend zu bemannen und für einen "Devroom" das Material für 2 Tage sowieso nicht gelangt hätte.

Anreise

Weil das Zugticket für Donnerstag billiger als für Freitag war, beschloss Francois schon einen Tag früher als geplant zu fahren. Vorher besorgte er sich bei einem Druckshop noch Visitenkarten, um sie auf der FOSDEM verteilen zu können. Obwohl er mit seinem eigenen Papier kam und alles selber geschnitten hatte, ging ihm dafür das Geld aus...

In Lille übernachtete François dann wie im letzten Jahr bei Rémi Grumeau, den Webmaster von BeOS France, und den Freitag verbrachte er in programmierend und mit Spaziergängen durch die Stadt und überlegte sich schon mal welche Vorträge er besuchen möchten.

Samstag

Nachdem sie sich wie üblich erstmal ein bisschen verfahren hatten, kamen sie gegen Mittag bei der ULB an, wo sie sich mit Olivier Coursière und später Alexandre Deckner trafen, der Pulse auf seinem Dual Core Notebook zeigen konnte.

Neben dem Haiku-Stand waren die Jungs vom ReactOS Projekt, die François eingeladen hatte. Neben Sticker und CDs hatten die auch eine Spendenbüchse. Eine gute Idee für Haikus nächsten Auftritt. Die ebenfalls eingeladenen Syllable Leute konnten dieses Mal leider nicht kommen.

Unter den Besuchern am Haiku Stand war Eric Bachard, einer der MacOSX Portierer von OpenOffice.org, den François schon beim letzten RMLL getroffen hat. Eric freut sich schon auf eine installierbare GCC4-Version von Haiku, um mit dem Port beginnen zu können.

Dann kam Ithamar Adema mit seinem Geschäftpartner vorbei. Die beiden haben eine Firma gegründet, die sich mit "embedded computing" befasst. Hoffentlich hat er noch Zeit bei einem ARM Port zu helfen...

Ein weiterer Gast war Måns Rullgård vom FFmpeg Team, mit dem François schon öfters über fehlende Standardfeatures von BeOS gestritten hat und den Unterschied eine Anwendung auf ein OS zu portieren oder ein OS an eine Anwendung anzupassen.

Daneben ging Francois zu einigen Vorträgen und verpasste so einige Besucher am Stand.
Zuerst ging es zu einem unterhaltsamen Vortrag von Rob Savoye über sein Reverse-Engineering von Adobe's Streaming Protokoll RTMP, der in einem überfüllten Amphitheater stattfand. Rob ist der Autor des Gnash Flash Players; im letzten Jahr sprach er ausführlich am Haiku Stand über eine Haiku Portierung.

Danach waren zwei Vorträge zu Java an der Reihe. Zuerst Cross-Compiling von OpenJDK auf embedded-ARM Architekturen, was auch für Haikus Java Port nützlich sein könnte.
Der andere ging um das Caciocavallo Framework. Damit soll es einfacher werden GUI backend für Java zu schreiben, indem das AWT Zeichnen Swing überlassen wird und man nur noch die Arbeitsfläche und die Elemente der obersten Ebene plattformspezifisch implementieren muss. Es existiert sogar ein noch einfacheres Interface mit einem einfachen Grafikpuffer, das das Fenstermanagement von Swing aus macht. So kann man eine plattformspezifische Oberfläche Schritt für Schritt entwickeln: Erst nur eine einfache Oberfläche für die nur wenigen Methoden zu schreiben sind, dann die Elemente der höheren Ebenen und erst zum Schluss ein komplettes AWT Backend.

Am Abend ging's dann wieder zurück nach Lille, wobei sich die Jungs glatt wieder verfuhren... Daheim wurde dann erstmal eine Karte ausgedruckt.

Sonntag

Dank der Karte kam man fast pünktlich zu Eric Bachards über die Unterstützung von Apple Remote in OOo Impress.
Weitere zwei Stunden erklärte Eike Rathke seine Debugging-Methoden für OOo anhand eines konkreten Beispiels. Das alles verschaffte einen nützlichen Eindruck wie der riesige OpenOffice.org Source organisiert ist, bevor der Haiku Port ernsthaft angegangen wird.

Nach dem Essen und einen Abstecher zum Haiku Stand begann François eine Tour der anderen Aussteller. Am XMPP (Jabber) Stand sprach er über das IM Kit, an einem anderen beäugte er diverse embedded Lösungen und PDAs, darunter ein Zaurus 6000L und ein winziges ARM BeagleBoard. Außerdem kam er noch an OpenSolaris, Postgres, diversen GNU/Linuxen, Gnome KDE und BSDs vorbei.
Im Treppenhaus traf er auf Rob Savoye mit dem er über das Übel Flash sprach und der die Hoffnung auf einen baldigen Port von Gnash auf Haiku aht, jetzt da GCC4 kein Problem mehr ist.

Ab 15 Uhr gab's einen Vortrag von Theodore Ts'o über die neuen Features in ext4. Das interessanteste dürften "extents" sein, die das BFS seit 10 Jahren als "block_runs" kennt und über die Linux auch mit XFS verfügt. "Extends" wurden schon lange für den Umgang mit riesigen Mediadateien sehnlichst erwartet.
Nach dem Vortrag wurde soviel über diverse Dateisystemprobleme gefachsimpelt, dass François mit seinen Fragen zu Attribut-Unterstützung in ext4 leider nicht mehr zum Zuge kam.

Nachdem der Haiku Stand aufgeräumt war, gab's noch eine Infoveranstaltung von Google, wie sie den "Summer of Code" managen und was dieses Jahr geplant ist.

Schlussbemerkung

Für François war dieses FOSDEM sehr interessant, weil er mehr Vorträge mitbekommen hat als im Vorjahr und wieder viele anregende Gespräche führen konnte. Und obwohl sich der Haiku Stand in einem nicht so überlaufenen Gebäude befand, kamen doch eine Menge Besucher, mit denen wiederum besser diskutiert werden konnte, eben weil man nicht in einem Geek-überfüllten Korridor war.

Viele der anwesenden Projekte könnten die Entwicklung von absolut notwendigen Portierungen wie Java und OpenOffice.org beschleunigen. Mit den meisten von ihnen hat François Visitenkarten getauscht, um in Kontakt bleiben zu können.

Zum 10. FOSDEM im nächsten Jahr, wähnt François Haiku in einer noch besseren Ausgangslage: Mit eine R1/Alpha und all den guten Sachen (FireFox3, OOo, Webkit, Java, Gnash) und den schlechten (Java, Gnash). :-D

Dienstag, 10. Februar 2009

Mini-Interview mit Christof Lutteroth

Christof Lutteroth, einer der Gewinner des 9. Thank You Award, hat sich die Zeit genommen und ein paar Fragen in einem Mini-Interview beantwortet.

Wie alt bist Du und womit bestreitest Du Deinen Lebensunterhalt?

Ich bin 30 Jahre alt und halte Vorlesungen an der Universität in Auckland. Das heißt, ich unterrichte Studenten - meist in Software Engineering aber auch in anderen Bereichen wie Computer Graphics. Daneben wird auch geforscht, wie im Fall von ALM und dem Stack&Tile.

Ihr habt den Thank You Award für die Methoden zur Fensteranordnung und Platzieren von Bedienelementen bekommen. Wie schwer (oder einfach) war das? Habt ihr in den vergangenen zwei Monaten etwas anderes vollbracht, das übersehen wurde, das Du als sogar noch interessanter oder größeren Erfolg werten würdest?

Das Fundament wurde von unseren Studenten gelegt, die erfolgreich die Prototypen für Stack&Tile und den GUI Anpassungen entwickelten. Sie zeigten, dass deren Implementierung unter Haiku möglich war und fanden Lösungen für alle notwendigen technischen Details. Dabei wurden sie hervorragend von der Haiku Gemeinschaft unterstützt.

Nach dieser Prototypenphase (und nachdem meine Studenten erfolgreich ihren Abschluss gemacht und gute Jobs im IT Bereich fanden), musste der Code überarbeitet werden. Die zugrunde liegenden Konzepte wurden verfeinert und der Code selbst wurde weiterentwickelt und stabiler. Viel wurde (und wird noch immer) am Stack&Tile System gearbeitet. Das Entwickeln selbst war nicht besonders schwer, aber bei diesen Dingen handelt es sich oft um einen kreativen Prozess, bei dem man verschiedene Möglichkeiten verfolgt und wieder verwirft, bis sich irgendwann die vielversprechenden Konzepte heraus kristallisieren.

Es gibt da noch so einige Dinge, für Stack&Tile wie für ALM, die wir umsetzen wollen.
Momentan arbeite ich daran die Stack&Tile Konfigurationen zu speichern. Wenn man also einmal per Stack&Tile verbundene Fenster wieder öffnet, z.B. nach einem Neustart des Rechners, sollen sie sich wieder an ihre vorige Anordnung erinnern. Daneben haben wir noch zahlreiche weitere Ideen, das sind allerdings eher langfristige Projekte.
Gerald und ich werden dieses Jahr wieder einige Abschluss-Projekte von Studenten betreuen und eines wird sich höchstwahrscheinlich mit User-Benachrichtigungen beschäftigen. Wir planen dieses Projekt unter Haiku zu machen, wahrscheinlich auf Basis der Anwendung InfoPopper.

Was hättest Du gerne um Dir die Arbeit an Haiku zu erleichtern?

Besser dokumentierter Sourcecode wäre toll (z.B. in Form von Doxygen Kommentaren), und zwar nicht nur für die API, sondern für alle Teile des Systems. Eine IDE, die das Durchforsten des kompletten Sourcecodes erleichtert, wäre auch nicht verkehrt.

Welches Buch, Band, Podcast, Webseite, Magazin, Film, TV Serie usw. würdest Du gern empfehlen?

Gerald und ich schauen gerade die Serie "Angel" auf DVD. Spaßige Dialoge für Lacher am Ende eines harten Arbeitstages. Musikmäßig empfehlen wir "Rush".

Mittwoch, 4. Februar 2009

Mini-Interview mit Artur Wyszynski

Mit etwas Verspätung kommt das Mini-Interview mit Artur Wyszynski, Gewinner des 8. Thank You Award.

Wie alt bist Du und womit bestreitest Du Deinen Lebensunterhalt?

Ich werde im April 26 und arbeite als Softwarespezialist bei BLStream, wo ich Software für Mobilgeräte entwickele. Meist basierend auf S60/WindowsMobile.

Du hast den Thank You Award für die Integration von Farbverläufen ins Interface Kit bekommen, was eine Modernisierung der GUI vereinfacht. Wie schwer (oder einfach) war das? Hast Du in den vergangenen zwei Monaten etwas anderes vollbracht, das übersehen wurde, das Du als sogar noch interessanter oder größeren Erfolg werten würdest?

Es war relativ einfach. Das schwerste war, sich in den app_server Code einzulesen, der das Zeichnen übernimmt. Danach musste ich nur noch AGGs Beispielcode für Farbverläufe durchackern und ihn auf der app_server Seite implementieren. :)
Ja, und im Dezember hab ich ein wenig an Farbverläufen in Haikus Oberfläche gearbeitet. Die Ergebnisse meiner Experimente sind hier zu sehen. :)

Was hättest Du gerne um Dir die Arbeit an Haiku zu erleichtern?

Eine schöne IDE (Programmierumgebung) und Hardware OpenGL :)

Welches Buch, Band, Podcast, Webseite, Magazin, Film, TV Serie usw. würdest Du gern empfehlen?

Ich liebe die "Discworld" Serie von Terry Pratchett und im TV alles was Stargate ähnelt. :)

Montag, 2. Februar 2009

9. Thank You Award geht an das Auckland University Team

Das Team um Christof Lutteroth bekam beim 9. Thank You Award 50% aller Stimmen, gefolgt von Jérôme Duval (20%), Niels Reedijk (20%) und Clemens Zeidler (10%). Und irgendwie scheint der 5. Kandidat, Alexandre Deckner, bei der ganzen Sache vergessen worden zu sein. Ein Schlag ins Gesicht, schöner "Thank You Award"... :)
Somit muss sich das Sieger T-Shirt diesmal eine Gruppe von 6 Personen teilen... oder sie teilen sich $50, die es diesmal ausnahmsweise als Alternative gibt.

Herzlichen Glückwunsch an die Sieger und an alle Kandidaten!

Sonntag, 1. Februar 2009

100% GCC4 inside!

Einen GCC 4.1.2 Cross-Compiler gibt es ja schon länger. Damit konnte unter einem anderen Betriebssystem Code für Haiku kompiliert werden, der dann in einer ebenfalls mit dem Cross-Compiler erzeugten GCC4-Version von Haiku getestet/benutzt werden konnte. Das macht den Entwicklungsprozess offensichtlich nicht gerade angenehm.

Nun endlich gibt es eine vollständige GCC4.3.3 Entwicklungsumgebung nativ unter Haiku!
Das bedeutet, Projekte wie Firefox 3, Webkit, VLC und viele andere aktuelle Software, können jetzt direkt unter Haiku portiert/entwickelt werden.
Um die entstehende Software zu nutzen, ist dann natürlich ein GCC4 bzw. "Hybrid" Haiku erforderlich, das die zusätzlichen GCC4 Versionen der Bibliotheken enthält. Beides lässt sich aber schon seit einiger Zeit erzeugen.

Möglich gemacht hat das Michael Lotz, der ausführlich über seine langen Hack-Nächte berichtet.
Interessant ist dabei auch, dass er die ganze Arbeit komplett unter Haiku vollbracht hat. Dabei lief das System oft 20 Stunden am Stück, um immer wieder stundenlang so Riesenprojekte wie GCC und Haiku selbst zu kompilieren und Code in die Online Softwaredepots ein- und auszuchecken. Nebenher nutze Michael das System ganz normal zur Internet Recherche, Webmail, Chat und Musik hören.
Mit der nativen GCC4 Umgebung ist Haiku nun also tatsächlich bereit für die Entwicklung großer moderner Software.