Chemnitzer Linux-Tage 2010

Dieses Wochenende, 13. und 14. März 2010, finden wieder die Chemnitzer Linux-Tage statt.
Auch diesmal wird Haiku wieder mit einem kleinen Stand vertreten sein. Wer Stephan Aßmus und Daniel Wünsch Gesellschaft leisten will, sollte schnell eine Mail an Stephan schicken. Bis zu vier Leute können nämlich für den Stand angemeldet werden, womit man sich die Eintrittsgebühr sparen kann. Die beträgt allerdings auch nur 5 EUR für das ganze Wochenende... :)

Neue Vektor-Cursor

Im Rahmen seiner Web+ Arbeit hat sich Stephan Aßmus einem Gebiet angenommen, dass seit frühesten BeOS Zeiten unangetasted blieb: der Mauszeiger. Seit ewigen Zeiten war das eine klitzekleine Bitmap Grafik, die in Auflösung und Farbtiefe beschränkt war.

Stippi hat sich jetzt hingesetzt und nicht nur den Standard-Zeiger als Vektorgrafik im Icon-O-Matic Format designt, sondern auch eine ganze Reihe anderer Zeiger, die Feedback über den momentanen Zustand bzw. Hinweise zu Aktionen geben, wenn man mit der Maus über einem Objekt schwebt.
Die sind wohl in erster Linie für Web+ gedacht, aber über kurz oder lang werden noch weitere Cursorformen dazukommen und in ganz Haiku Einzug halten.
Neben dem weniger pixeligen Look und der größeren Freiheit in der Farbgestaltung, hat das Vektorformat den zusätzlichen Vorteil, dass sich die Zeiger auch schön skalieren lassen. Man kann sich sogar Effekte vorstellen, wie rhythmisches vergrößern/verkleinern...

Wie sehen die Dinger denn nun aus?

Das war der alte Zeiger: Alter Cursor
Und das ist der neue: Neuer Cursor

Hier eine Übersicht aller zur Zeit verfügbaren Cursor:
Alle neuen Cursor
Sehr hübsch! Aber immer noch keine Sanduhr dabei... :)

C++ Kurs Doppelpack, Lektion 8 und 9

Um schneller zu den wirklich interessanten Themen zu kommen, C++ Spezialitäten und die Haiku API, hat sich DarkWyrm entschieden die nächsten Lektionen im Doppelpack zu veröffentlichen.

Lektion 8 beleuchtet als ersten den Geltungsbereich von Variablen, also ob sie lokal, global oder static sind. Danach wird kurz auf verschiedene Arten von Konstanten eingegangen, definiert mittels Preprozessor per #define oder als const int und wie das ganze auf Zeiger angewendet wird.
Das nächste große Thema ist das Schreiben und Einlesen von Daten über Streams (stdin, stdout, stderr und Dateien) mittels fprintf(), fgets(), fopen() und Konsorten.

Lektion 9 steht ganz im Zeichen von Arrays und wie mittels Zeiger auf sie zugegriffen werden kann.

Damit ist auch die zweite Lehreinheit abgeschlossen. Zu Einheit 1 (Lektion 1-5) und Einheit 2 (Lektion 6-9) gibt es nochmal zusammenfassende Fragen.

"Hire-A-Dev" / WebKit Aktion trägt Früchte

Die Auftragsarbeit eines Entwicklers für einen gewissen Zeitraum und die dafür notwendige Spendenaktion sind ziemlich erfolgreich. In der Woche seit dem Aufruf ist das Spendenaufkommen stark angestiegen: etwa $1.200 (nach letzten Zählungen über $1.600) konnten eingenommen werden und es fanden sich auch einige, die ab jetzt monatlich einen kleinen Betrag spenden wollen.
Vielen Dank an alle, die etwas Geld locker machen konnten!

Da auch zukünftig solche Aufträge erteilt werden sollen, ist es für eine Spende übrigens nie zu spät. Wer also noch nicht dazu kam und noch an der Aktion teilhaben will, kann weiter über PayPal spenden.

Stephan Aßmus' Auftragsarbeit selbst, die (Weiter)Entwicklung von WebKit und nativen Browser, ist sogar noch erfolgreicher. In nur knappen zwei Wochen ist ein funktionsfähiger Browser entstanden: WebPositiv, als Nachfolger des simplen BeOS Browsers NetPositiv.

Stippi listet die Fortschritte seit dem ersten Blog Posting:

  • Große WebKit API Säuberung (BWebView, BWebPage, etc).
  • Bugfixe für Abstürze etc. beim Download.
  • Bugfixe für div. Abstürze.
  • Bugfixe beim Rendern von transparentem Text.
  • Stark verbesserte Desktop Integration.
  • Viel effizienteres Rendern.
  • Verbesserter Umgang mit WebCore um noch mehr Websites darstellen zu können.
  • Einführung eines Stop-Buttons.
  • Bugfix fürs Mausrad (Michael Lotz).
  • Bugfix um Tastatureingaben an den richtigen Frame zu senden (Michael Lotz).
  • Komplett neu geschriebenes Tab Management.
  • Darstellung von Favicons.
  • Noch mehr Tastaturkürzel und einige Mausaktionen (teilweise von Ryan Leavengood).
  • Neu geschriebene Timer-Implementation führte zu viel geringeren Redraw-Verzögerungen.
  • Auto-Vervollständigung im URL Feld (benutzt Oliver Tappes Spitzencode aus Beam).
  • Flüssiges Scrollen, da nicht mehr der ganze Frame bei jeder Bewegung neu gezeichnet wird.

Zwar fehlen noch einige wichtige Features wie Bookmarks, Kontextmenüs und Management von Cookies und Einstellungen, aber das Websurfen selbst funktioniert schon sehr gut, recht stabil und vor allem sehr schnell. Auch die Startzeit von unter einer Sekunde ist eine Wohltat verglichen mit dem BeZillaBrowser.

Die Entwicklung lässt sich in der "Timeline" auf der Haiku WebKit Port Seite verfolgen (die übrigens unter Haiku auf einem Rechner von Michael Lotz läuft). Dort gibt es auch "Nightly Builds" zum Testen.
Weiterhin kann man sich in Stippis Blog über die rasanten Fortschritte informieren. Hier verlinkt Stippi auch immer aktuelle Web+ Builds, die u.U. stabilere Snapshots sind, als die Nightlies.

Bericht von der SCaLE 2010

Jorge Mare hat jetzt seine Eindrücke von der SCaLE 2010 zusammengeschrieben. Er war dort am 20./21. Februar, zusammen mit Scott McCreary und Bruno Albuquerque, letzterer war extra aus Brasilien nach LA angereist.

Auf ihrem kleinen Stand hatten sie drei kleine Rechner und einen Beamer aufgebaut, mit denen Haiku Demonstrationen gegeben wurden. Daneben wurden etwa 250 Flyer und 50 Haiku Alpha CDs (von Scott auf Lightscribe gebrannt) verteilt.
Leider hatten weder Bruno noch Ryan Leavengood die Möglichkeit bekommen einen offiziellen Vortrag zu halten. Und die BOF (birds of a feather) Präsentation war auch nicht gerade gut besucht, was wohl am späten Termin (19-20 Uhr) lag. Da waren die meisten wohl schon an der Bar und es kamen nur etwa 15 Leute.

Jorge, der bei allen vier SCaLE Messen mit Haiku-Beteiligung war, sah deutliche Fortschritte wie Haiku von den Besuchern wahrgenommen wurde. Wurde Haiku früher als eher obskures Projekt eingestuft, das wohl eh keine Zukunft hat, wird es heute wirklich ernst genommen.
Ein weiterer Hinweis auf diese geänderte Wahrnehmung scheint das wachsende Interesse von ehemaligen BeOS Entwicklern zu sein, die Haikus Fortschritte immer stärker verführt zurück zu kommen. Einer von ihnen ist Michael Aramida mit seinem QueryWatcher, der am Samstag an den Stand kam und sich lange vor allem mit Bruno unterhielt.
Ein weiterer Gast war Rob Savoye, einer der Hauptentwickler des Flash Players Gnash. Der Gnash 0.8.7 Port für Haiku hat ihn auf Haiku aufmerksam gemacht und scheint ihn so beeindruckt zu haben, dass er Haiku sogar bei seinem SCaLE Vortrag [MP3, 50mb] erwähnte.
Generell wurde Haiku auch bei der "Konkurrenz", KDE und Gnome, mit Interesse aufgenommen. Beide wurden mit einer Haiku Alpha CD bedacht...

Alles in allem eine sehr erfolgreiche Veranstaltung, die vielen Leuten Haikus erstaunliche Fortschritte seit der letzten SCaLE näher gebracht hat.

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.

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.

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.

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.

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!

Inhalt abgleichen