Dienstag, 3. Dezember 2013

Vertragsverlängerung durch Google-Spende

Gute Nachrichten: die beiden Vollzeitverträge von Adrien und Paweł können um einen weiteren Monat verlängert werden. Neben den zahlreichen kleineren Spenden liegt das an $5.000, die von Google kommen. Das ist die zweite Spende von Google in dieser Höhe in diesem Jahr. Die erste erfolgte im Januar 2013.

Adrien und Paweł haben nun also noch einen weiteren Monat Vollbeschäftigung, um Webkit/WebPositive bzw. den Scheduler auf Vordermann zu bringen. Da Scheduler-Änderungen sehr tief ins System eingreifen, muss ausgiebig getestet werden bevor sie einfließen können. Vielleicht ist das für den Scheduler nicht so schnell machbar, aber zumindest der verbesserte Browser wird die drohende Beta-Release Anfang nächsten Jahres nochmals spürbar aufwerten.

Freitag, 8. November 2013

TRIM-Unterstützung für SSDs

Axel Dörfler werkelt schon länger an Haikus TRIM-Unterstützung. Per TRIM-Befehl teilt man einem SSD-Laufwerk mit, dass gelöschte oder nicht mehr genutzte Blöcke frei geworden sind. Der SSD-Controller würde sonst fröhlich weiter diese Blöcke bei Schreibvorgängen aktualisieren. Durch den TRIM-Befehl steht der frei gewordene Speicher auch tatsächlich wieder für neue Daten zur Verfügung und durch die wenigeren Schreibzugriffe nutzt sich die SSD weniger schnell ab und ist auch schneller. TRIM-Unterstützung ist also eine feine Sache.

Mit hrev46325 hat Axels Arbeit seinen Weg in den Master Trunk gefunden, d.h. Nightly Images besitzen nun den Befehl fstrim. Das Trimming wird allerdings noch nicht automatisch vorgenommen. Nicht zuletzt, weil das Feature noch ziemlich jung ist und daher relativ wenig getestet.
Wer ein SSD-Laufwerk hat - auf dem keine wichtigen Daten sind - kann beim Testen helfen. Wie das geht, hat Axel in einen kleinen Beitrag in die Developer Mailingliste gepostet.

  1. Eine kleine Testpartition anlegen.

  2. Die Partition mit zufälligen oder fixen Daten füllen, z.B: dd if=/dev/random of=/dev/disk/scsi/0/9/0 bs=1M (der Gerätepfad ist natürlich entsprechend anzupassen!)

  3. In der Partition ein BFS Volume anlegen (per DriveSetup), und ein paar Dateien reinkopieren.

  4. Per DiskProbe checken, ob der unbenutzte Teil der Partition auch wirklich mit den unter Schritt 2 festgelegten Daten gefüllt ist.

  5. Trimmen der unbenutzten Daten: fstrim /MyTestPartition

  6. Reboot.

  7. Prüfen, ob das BFS Volume und die kopierten Dateien noch in Ordnung sind.

  8. Per DiskProbe checken, ob die in Schritt 2 generierten Daten im unbenutzten Teil der Partition jetzt auch wirklich weg sind.

  9. Bei Erfolg einen kurzen Kommentar hier hinterlassen. Bei Problemen ein Ticket auf dem Bugtracker öffnen.

Mittwoch, 6. November 2013

Haiku beim Google Code-In (GCI) 2013

Ab 18. November 2013 werden Jugendliche zwischen 13 und 17 Jahren diverse kleinere und größere Aufgaben für 10 ausgewählte Opensource Projekte erledigen. Als Preise winken Urkunden, T-Shirts und pro Organisation 2 Hauptgewinne: Eine knappe Woche samt Begleitperson zum Google Hauptquartier nach Mountain View, Kalifornien.
Haiku ist wie jedesmal seit dem ersten GCI 2010 auch diesmal wieder mit dabei. Wer helfen möchte den Halbwüchsigen den Einstieg in die gemeinschaftliche Arbeit an freien Projekten zu erleichtern, kann sich als "Mentor" registrieren und sich bei den Themen die ihm liegen, eintragen.

Alle Infos sind auf der Google Code-In 2013 Seite zu finden. Wer einen ersten Eindruck der geplanten Aufgaben bekommen möchte bevor der GCI offiziell beginnt, kann ja mal einen Blick auf Haikus Ideenliste werfen.

Donnerstag, 31. Oktober 2013

Vertragsverlängerung dank Spendenaufkommen

Dank großzügiger Spenden konnten die Vollzeitverträge mit Adrien und Paweł um jeweils einen Monat verlängert werden! Hier ein paar Zahlen: Seit Ende August kamen über 5.000 Dollar zusammen, gespendet von 110 Personen durch insgesamt 75 monatlichen Spenden und 72 Einmal-Spenden. Über das ganze Jahr gesehen sind es über 20.000 Dollar von 322 Personen durch insgesamt 354 monatliche und 322 Einmal-Spenden.

In Kürze werden folgende Auszahlungen fällig:

  • 4.000 € for Olivers Paketmanager Vertrag
  • 2.000 € für Adriens 1. Monat
  • 2.000 € für Adriens 2. Monat
  • 2.500 $ für Pawels 1. Monat
  • 2.500 $ für Pawels 2. Monat
  • 400 $ für Ohio Linux Fest
  • 100 $ für Domain-Kosten

Danach sind noch 1.200 $ in der Kasse, 1.000 $ davon werden für unvorhergesehene Ereignisse zurückgelegt.

Wie man sieht sind nun weitere Spenden nötig, um beispielsweise Adrien und/oder Paweł einen weiteren Monat zu geben. Neben der schnellen "Soforthilfe" von einmaligen Spenden, zeigen sich vor allem die kleinen monatlichen Beiträge als sehr effektiv. Insbesondere, da man durch diese relativ "festen Einnahmen" in die Zukunft planen kann. Alle Spendenmöglichkeiten sind hier aufgelistet.

Wer die beiden Vertragsarbeiten verfolgen möchte, findet regelmäßige Berichte in den Blogs von Adrien und Paweł. Neben Haikus Master Branch finden sich die commits der beiden auf GitHub im bnetapi Branch vom WebKit bzw. im Scheduler Branch.

Freitag, 4. Oktober 2013

Packagemanagement schlägt im Master Trunk auf

Nach vielen Monaten Planung und Programmierung, zuletzt mit Vollzeitverträgen von Ingo und Oliver, fand der "Merge" vom Packagemanagement in Haikus Master Trunk statt. Das dürfte der letzte große Meilenstein zur Beta und damit R1 gewesen sein. Die Meldung ist nicht mehr ganz neu; golem.de und OsNews haben schon davon berichtet.

Haikus Packagemanagement bietet einige Vorteile, die für die R1 als unbedingt nötig eingestuft wurden. So sind damit zukünftig Updates des Systems möglich und theoretisch auch Downgrades auf vorige Versionen. Bisher konnte Haiku nur durch eine komplette Neuinstallation auf einen neuen Stand gebracht werden.
Pakete bieten eine benutzerfreundliche De-/Installation und Updatemöglichkeiten, siehe "HaikuDepot". Dabei wird sichergestellt, dass alle eventuell nötigen zusätzlichen Bibliotheken etc. mit de-/installiert werden.

Da die Pakete selbst schreibgeschützt sind und auch Haikus Systemdateien "verpackt" sind, wird nun effektiver verhindert, dass der Benutzer sich ungewollt das System zerschießt. Die Änderungen sind für langjährige Nutzer natürlich etwas gewöhnungsbedürftig. ~/config/boot ist eine Ebene tiefer nach ~/config/settings/boot gewandert und auch ~/config/be liegt nun dort als ~/config/settings/deskbar.
Die aktivierten Packete liegen in /boot/system/packages und ~/config/packages. De-aktiviert werden sie, indem sie einfach aus diesen Verzeichnissen verschoben werden.
"Nicht-paketierte" Anwendungen kann man wie gewoht irgendwo in der /boot/home-Hierarchie ablegen. Evtl. mit der Anwendung kommende Bibliotheken können entweder in einem Unterordner "libs" in dem Anwendungsordner liegen, da /boot/system und ~/config ja schreibgeschützt sind (in letzterem hat man nur auf die ~/config/settings Zugriff). Als Alternative existiert das Verzeichnis ~/config/non-packaged. Hier können ebenfalls Bibliotheken (unter "libs"), Add-Ons (unter "add-ons") oder Konsolenprogramme (unter "bin") abgelegt werden.

Die /boot/common-Hierarchie entfällt übrigens komplett. Es gibt also nur noch die Trennung System/User, was alles eigentlich nochmal etwas vereinfacht. Die genauen Hintergründe für den Verzicht auf "common" kann man im Thread [haiku-development] Removing /boot/common nachlesen.
Alle übrigen Details finden sich im Wiki.

Wie nicht anders zu erwarten nach so einer tiefgreifenden Veränderung im System, sind nach dem "Merge" diverse Fehler aufgetreten und auch schon einige behoben worden. Auch sind noch nicht alle Feinheiten des Packetmanagements ausgearbeitet und es rumort noch etwas im Trunk. Wer sich selbst vom derzeitigen Stand ein Bild machen will und ggf. bei der Bugsuche und -beseitigung mithelfen möchte, für den stehen wie üblich Nightly Images zur Verfügung. Kommt man von einem nicht-PM Haiku, sollte man das Anyboot Image auf einen USB-Stick dd'en, ihn booten und von dort installieren.

Donnerstag, 3. Oktober 2013

Haiku bei StackExchange?

StackExchange ist ein großer Verbund von Q&A Seiten, auf denen User und Entwickler qualitativ hochwertige Fragen stellen und Antworten geben. Gerade der Ableger StackOverflow ist unter Programmierern sehr bekannt und geschätzt.

Momentan gibt es Bemühungen auch für Haiku so ein Q&A Netzwerk zu etablieren. Dazu müssen 40 gute Beispiel-Fragen ersonnen werden, die von anderen mindestens 10 positive Bewertungen erhalten haben. Ist dies geschehen, beginnt eine Beta-Phase, in der dann eine "echte" FAQ Liste mit guten Fragen und Antworten aufgebaut wird.

Doch erst mal muss die erste Phase in "Haikus Area51" bestanden werden. Das geht nur, wenn möglichst viele sich dort anmelden und Fragen bewerten und eigene einbringen. Wohlgemerkt, hier geht es nur um Fragen, Antworten muss man auf sie nicht schreiben.

StackExchange wäre für Haiku User und Entwickler eine wertvolle Resource und eine Möglichkeit für Haiku auch nach außen als lebendige Plattform zu präsentieren. Natürlich nur, wenn genügend von uns mitmachen...

Sonntag, 8. September 2013

Weitere zwei Vollzeit-Verträge

Ingos und Olivers Vollzeit-Verträge mit Haiku Inc. sind noch nicht ganz abgelaufen, da kündigen sich schon die nächsten beiden an. Bei denen geht es zur Abwechslung mal nicht um das Packagemanagement, dessen Grundlagen soweit gediehen sind, dass sie demnächst in den Master Trunk eingefügt werden. Die neuen Baustellen sind Verbesserungen im Kernel und im Browser.

Adrien (PulkoMandy) Destugues kümmert sich um WebPositive und den dahinter werkelnden WebKit Port. Sein erster Plan ist, das schonmal begonnene ServiceKit soweit aufzubohren, dass es als Backend in WebPositive genutzt werden kann. Die Verbesserungen im ServiceKit wären dabei natürlich auch für alle anderen (zukünftigen) Anwendungen interessant, die Daten über das Internet austauschen. Nach etwas Feedback anderer Entwickler, könnter dieser Plan aber noch leichte Änderungen erfahren. Seine Vertragsarbeit beginnt allerdings auch erst im Oktober; er hat also noch etwas Zeit zur Recherche.

Den zweiten Vertrag übernimmt Paweł (pdziepak) Dziepak. Seine Aufgaben liegen noch tiefer im System: er möchte den CPU Scheduler verbessern und Caches besser nutzen, HyperThreading performanter machen und Stromsparfunktionen umsetzen. Alles Themen, die schon länger im Gespräch sind. Bisher fand sich allerdings niemand, der die Zeit hatte sich so tief ins System reinzudenken. Einzelheiten finden sich in Pawełs ersten Blogpost.

Beide Verträge laufen erstmal einen Monat. Paweł würde gern noch einen weiteren anhängen, Adrien nach Möglichkeit mehrere. Beides hängt davon ab, ob sich genügend Spender finden, um es zu finanzieren. Wer mithelfen möchte Haiku in diese beiden essentiellen Komponenten zu verbessern, kann bei Haiku Inc. dafür spenden. Neben einmaligen Spenden gibt es auch die Möglichkeit einen kleinen Betrag automatisch (und jederzeit kündbar) zu überweisen.

Freitag, 30. August 2013

Iljas Multimonitor-Idee

Ilja Demant hat mir folgende Idee zugesandt:


ich bin ein großer Haiku Fan, weil ich hinter Haiku im Gegensatz zu div. Linuxen ein gutes Konzept für freie Software sehe (welches sich nicht alle 2 Monate ändert). Es ist in meinen Augen das einzige was es an vernünftigen Mutimedia-Systemen gibt.

Vielen Dank für Deine Beiträge in der Haiku Gazette, welche ich immer gern und sehr neugierig verfolge.

Gestern Nacht habe ich habe ich mir überlegt, wie die Anwendung Cortex mit Sound umgehen kann. Und da kam mir der Blitzschlag, warum gibt es das noch nicht für Video?

Praktische Anwendung wäre, wenn man 2 Bildschirme (Screen 1 + 2) anschließt und eine Präsentation abhält:
Screen 1 (Monitor) verknüpft mit Workspace 1 (auf dem Bildschirm sind Notizen für die Präsentation)
Screen 2 (Beamer) verknüpft mit Workspace 2 (strahlt die eigentliche Präsentation/Video an die Wand)

Heute kann man bereits bis zu 4 Bildschirmen an einer VGA anschließen z.B. VGA, HDMI, DVI mit Splitter für 2 Monitore.
Die Idee verfolgte mich heute den ganzen Tag und ich habe sie noch weiter gedacht und es sogar gemalt. Die Zuordnung von Workspaces zu verschiedenen Screens wäre optimal für ein Multimedia-System.
Man könnte sogar alle Workspaces in einem Screen 4 (einem Beamer) gleichzeitig angezeigt bekommen "all in one" (z. B. 4 Homepages mit Wetter, Kursen, News usw. siehe Screen 4 auf dem Bild links unten).
Des weiteren könnte man die Screens individuell mit einander verbinden, so zu sagen für ein Video-Puzzle (Screen 1 mit 4 und 3 mit 2).
Aus Sicherheitsgründen wäre der Screen 1 immer Primär und automatisch mit allen Workspaces verknüpft, so kann man nichts kaputtmachen oder aus Versehen abschalten.

In ferner Zukunft, wenn man Multiuser-Support hat, kann man den "Log in" mit einem "Workspace", welches mit einem "Screen" verbunden ist, verknüpfen und auch gleichzeitig mit bestimmten Eingabegeräten (Tastatur und Maus).
Dazu müsste man den Inputserver dann genauso bearbeiten. Damit könnte man in einem Raum an einem einzigen Computer 4 Arbeitsplätze schaffen. Das könnte man in den Schulen anwenden oder auf der Enterprice, wo ein Prozessorkern tausende Bildschirme und Consolen verwaltet.


Ich hoffe meine Fantasien sind was für die Haiku-Gazette und inspirieren dadurch die Leute zu noch mehr Multimedia. Ich danke allen Mitwirkenden, die an Haiku arbeiten und freue mich auf die neuen Idee, die bereits in der nächsten Version umgesetzt werden.

Montag, 19. August 2013

Package Management - Status Update

Nach längerer Zeit hat Ingo wieder einen Blogpost über den momentanen Status des Package Managements geschrieben.
Danach haben sich Oliver und er in der letzten Zeit vornehmlich um Haikus Buildsystem gekümmert. Es ist nun wieder möglich Hybrid-Images zu erstellen, also Haiku Versionen, die mit gcc2 und gcc4 generierten Anwendungen zurecht kommen. Das gelingt nun sauberer als vorher: Früher musste man für gcc2/4 jeweils getrennt das Buildsystem konfigurieren, welches sich dann diverse Dateien aus der jeweils anderen Konfiguration ausborgte. Auch die Optional Packages der jeweils anderen Konfiguration wurde mitbenutzt.
Jetzt wird klar in primäre und sekundäre Architektur getrennt; das Buildsystem weiß selbst was mit welchem Kompiler gebaut werden muss. Aus den Optional Packages können redundante Daten entfallen.
Mit dieser Trennung ist man dann auch gut vorbereitet, wenn andere Architekturen offiziell von Haiku unterstützt werden, wie z.B. x86-64.

Ebenfalls interessant für neue Architekturen ist die Unterstützung von "Bootstrapping". Dabei werden keine schon vorhandenen Pakete heruntergeladen, sondern mittels HaikuPorter per cross-compiling komplett neu erstellt.
Genau das muss jetzt für noch für x86 gcc4 und x86-64 gemacht werden, bevor der Package Management Branch in Haikus Main Branch integriert werden kann.

Wer das alles schon mal ausprobieren will und Probleme im BugTracker melden möchte, für den gibt es wieder PM-Test-Images zum Herunterladen und z.B. per dd auf einen USB-Stick zu schreiben.
Ingo hat eine Wiki Seite erstellt, in der er die Änderungen für das Package Management festhält. Insbesondere die in der Zukunft für die Paketerstellung interessanten Regeln für .bep Dateien des neuen HaikuPorter sind für Entwickler einen Blick wert.

Neben diesen großen Fortschritten im Backend von HaikuPorter und dem Buildsystem, gibt es auch Neuigkeiten beim für den Benutzer sichtbaren Teil. Stephan Aßmus arbeitet unter dem Arbeitstitel "HaikuDepot" an dem grafischen Tool zur Verwaltung von Paketen. Mit ihm sollen bald Pakete online gefunden, deren Beschreibungen und Bewertungen angesehen und dann installiert und de-installiert werden. Wann immer Stephan die Zeit dazu findet, bringt er die Anwendung ein Stückchen weiter voran. Den aktuellen Code findet man im Haikus Main Branch, da es aber noch keine Verbindung zu einem (noch nicht existierenden) Repository/Depot gibt, haben die meisten Funktionen noch keine Wirkung und so fehlt HaikuDepot noch in den Nightly Images.

Hier ein Screenshot mit drei Testpaketen (Stand: hrev45972), der schon erahnen lässt wie simpel und elegant das Packagemanagement dem Benutzer präsentiert werden soll:

Donnerstag, 15. August 2013

Leszeks Haiku Challenge

Leszek Lesner war vor langer Zeit Nutzer von BeOS, danach Zeta und das inoffizielle BeOS Max Edition. Als großer BeOS Fan startete er sogar die kleine Linux Distro "ZevenOS", die sich optisch an BeOS anlehnte. Haiku war von Anfang an auf seinem Radar und so hat er ab und zu die aktuellen Alphas angetestet. In seinen Haiku Screencasts zeigt er immer wieder mal wie man diverse Aufgaben unter Haiku erledigt und auch sein Techview Podcast beinhaltet oft eine kleine Haiku Rubrik.

Haiku ist mittlerweile so stabil, dass er sich nun zu einem Experiment entschloss: Ist Haiku bereits so alltagstauglich, dass man es eine Woche lang als Haupt-Betriebssystem nutzen kann?

Seine Erkenntnisse hält er auf Leszeks Blog fest. Heute hat er die Erfahrungen seines zweiten Tags veröffentlicht.

Montag, 12. August 2013

Haiku Down Under 2013

Wer mitten in der Nacht aufwacht und ums Verrecken nicht mehr einschlafen kann, oder wer einfach eine Extrem-Nachteule ist, für den ist das Treffen Haiku Down Under genau das Richtige. Am Sonntag, 18. August 2013 sind Sikosis und BeMark zum sechsten Mal in der University of Queensland in Brisbane, Australien. Dort präsentieren Haiku den Interessierten vor Ort und per UStream und im IRC (irc://irc.freenode.net/#haiku-au) dem Rest der Welt.

Für Europäer liegt Brisbane in einer ziemlich ungünstigen Zeitzone, wenn es um morgendliche Veranstaltungen geht. Hier das Programm für Haiku Down Under 2013 mit den entsprechend unchristlichen Zeiten:

2:00 - 2:20 : Introduction / Session 1 - State of Haiku
2:20 - 2:30 : Haiku in Action VI
2:30 - 2:40 : Lazarus Demo with BeMark
2:40 - 2:50 : Haiku Visualized
2:50 - 3:10 : cURL Just Wanna Have Fun
3:10 - 3:30 : Open Forum
3:30 - 3:40 : End of Conference then Lunch

Mittwoch, 31. Juli 2013

BeGeistert 027 am 14./15. September 2013

Das 27. BeGeistert Treffen findet am Wochenende 14./15. September 2013 statt. Wie üblich trifft sich die Haiku Gemeinschaft in der Düsseldorfer Jugendherberge und tauscht sich über die neuesten Entwicklungen aus. Anschließend findet wieder eine Woche lang ein Code Sprint statt, bei dem interessierte Coder die Köpfe zusammenstecken um Haiku gemeinsam voranzubringen.
Wer mit dabei sein möchte, kann sich jetzt dafür unter BeGeistert.org registrieren. Ein offizielles Programm gibt's noch nicht; wenn das noch auftaucht, findet man weitere Infos in Haikus Event-Kalender.

Freitag, 31. Mai 2013

Package Management zum Ausprobieren

Wer mal ein bisschen mit dem gerade in Arbeit befindlichen Package Management (PM) rumspielen will, für den gibt es ein Test-Image zum Runterladen.

Vorsicht ist allerdings angeraten! Es handelt sich wirklich nur um ein Testsystem, das den gegenwärtigen Entwicklungsstand des PM zeigt. Es ist für den produktiven Einsatz nicht geeignet!

Um kein spezielles "makebootable" benutzen zu müssen, hab ich das Anyboot Image einfach auf einen USB-Stick dd'ed und den dann gebootet. Wer will kann das Testsystem dann ja per Installer auf eine Testpartition seiner Festplatte legen. [Edit: Den Installer darf man eben nicht benutzen, wie ich von Ingo erfahren habe, weil der noch nicht angepasst ist, würde der auch den Inhalt der Pakete tatsächlich ins Dateisystem schreiben. Also erst mal nur den USB-Stick booten...]
Meine dd-Kommandozeile war:

dd if=haiku-alpha-anyboot.image of=/dev/disk/usb/0/0/raw bs=1M

Den geneuen Pfad muss man natürlich anpassen. Hier ist wieder etwas Vorsicht angesagt, um nicht auf das falsche Gerät zuschreiben. Am besten trennt man vorher etwaige andere USB-Speichermedien...

Was einen nach dem Booten erwartet, sieht erstmal ganz gewöhnlich aus. In der Deskbar befinden sich die üblichen Menüs und Verknüpfungen zu den verschiedenen Programmen. So soll es ja auch sein, das PM soll für den Anwender ja möglichst transparent sein. Dass es sich um ein noch unvollständiges Testsystem handelt, hab ich erst mal nur gesehen, als ich gemerkt habe dass mein WLAN nicht funktionierte. Für einen kurzen Test ist das aber ja egal.

Wie einfach mittels PM Programme installiert und deinstalliert werden, kann man sehr schön so sehen:
Man öffnet im Tracker das Verzeichnis /boot/common/apps, in dem die gebundelten Anwendungen liegen, die nicht integraler Bestandteil von Haiku sind. Dann öffnet man das Verzeichnis /boot/common/packages, in dem die entsprechenden installierten Pakete liegen.
Nimmt man jetzt z. B. das Paket pe-2.4.3_hg602-3-x86_gcc2.hpkg und verschiebt es aus dem "packages" Verzeichnis beispielsweise auf den Desktop, verschwindet gleichzeitig das Verzeichnis "Pe" im Fenster "apps". Genauso schnell lässt sich Pe wieder installieren, indem man das Paket zurück verschiebt.

Das Ganze wird natürlich um einiges interessanter, wenn es um umfangreichere, meist von Linux portierte Pakete geht. Die haben ja die Tendenz alle möglichen Bibliotheken und andere Datenfutzel in diversen Verzeichnissen über die Festplatte zu verteilen. Hier ist das De/Installieren durch einfaches Verschieben einer Paketdatei sehr willkommen.
Eventuelle Konflikte, z. B. durch Bibliotheken unterschiedlicher Versionen, soll dabei ein Daemon im Hintergrund lösen. Der Benutzer soll davon möglichst nichts mitbekommen und nur in Ausnahmefällen belästigt werden, um beispielsweise dem Download von zusätzlich benötigten Paketen zuzustimmen. Ich glaube aber, das ist noch nicht vollständig implementiert. Zumindest konnte ich's aus Ermangelung entsprechender Pakete noch nicht ausprobieren. Pakete wie SDL oder Qt und die dafür geschriebenen Programme könnten da schöne Stresstests werden, könnte ich mir vorstellen. :)

Dieses Verteilen des Paketinhalts in die von der portierten Software erwarteten Verzeichnisse findet übrigens nur virtuell statt: Das packagefs gauckelt das nur vor, es wird also natürlich nicht wirklich jedesmal das Paket dekomprimiert und Dateien auf der Festplatte hin- und herkopiert.

Später wird es natürlich auch ein kleines GUI Tool geben, um alle verfügbaren/installierten Pakete bequem zu verwalten und online Repositories zu durchsuchen und die entsprechenden Pakete herunterzuladen etc. Aber dazu muss das Fundament natürlich erst mal perfekt funktionieren. Und dazu dienen ja die gerade laufenden spendenfinanzierten Vollzeitverträge.</zaunpfahl>

Mehr Informationen zum Packagemanagement findet man in dem entsprechenden PM-Wiki. Ich hoffe ich hab das Prinzip im Groben richtig verstanden und schreibe hier nicht zu viel Unsinn...

Donnerstag, 30. Mai 2013

Spendenaktion für Vollzeitverträge

Haiku Inc. hat dieses Jahr die Möglichkeit das durch Spenden gesammelte Geld sinnvoll für die Entwicklung von Haiku auszugeben. Durch Spenden der vergangenen Jahre ist zwar ganz schön was zusammengekommen, doch leider fehlten bisher erfahrene Haiku Entwickler, die über längere Zeit auf ihrem Können entsprechende Bezahlung verzichten konnten, um Vollzeitverträge mit Haiku Inc. abzuschließen.

Das ändert sich jetzt. Oliver Tappe und Ingo Weinhold, die bereits in den vergangenen zwei Monaten vollzeit an Haikus Package Manager gearbeitet haben, können ihre Verträge verlängern.

Oliver Tappe tritt dabei sozusagen eine Halbtagsstelle an: 80 Stunden pro Monat wird er für nur 1.000 EUR weiter an Haiku arbeiten. Das ganze für erst mal vier Monate, also 320 Stunden. Jeden Monat wird er dabei zwei Wochen an Haiku arbeiten und zwei Wochen für einen anderen, regulär zahlenden Kunden.

Ingo Weinhold hingegen wird echt vollzeit, 160 Stunden pro Monat, an Haiku arbeiten, bei 40 EUR pro Stunde. Hier sind erst mal drei Monate geplant, dann geht Haiku Inc. das Geld aus...

Das Beste aber ist: Ingo ist einverstanden noch weitere Monate anzuhängen. Es hängt also nur von den Spenden der Haiku Community ab!
Neben der kürzlich geschaffenen Möglichkeit der Minispenden durch Goodsearch gibt es auch Wege über Bitcoin und Flattr. Natürlich gibt es auch noch das alt-bekannte PayPal. Hier ist neben der einmaligen Spende auch eine automatische monatliche Abbuchung möglich. Wenn hier viele Leute mitmachen, die 5-10 EUR im Monat für Haiku ausgeben können, wären Vollzeitverträge über Jahre gesichert.




Alle Informationen stehen auf Haikus Spendenseite.






Die Verträge werden sich erst mal weiter auf das Packagemanagement konzentrieren. Um es nahtlos in Haikus Master Repository und Buildsystem integrieren zu können, gilt es diese Aufgaben zu lösen:
  • Vervollständigen des Cross-buildings (z.B. für x86_64)

  • Hybrid-Images wieder ermöglichen (gcc2/4)

  • haikuporter: Prüfung der Package-Konformität implementieren

  • Alle Packages für alle Plattformen bauen

  • Vervollständigen vom Package Management Daemon (Abhängigkeiten auflösen, Nach-Installations-Arbeiten) und (CLI) Package Manager (Upgrades von Haiku)

  • Erstellen von Tools/Infrastruktur zum Herstellen/Management von Package Repositories

  • Integration der Package Repositories ins Buildsystem

  • Bootloader Feature: "Safe Mode" und "Booten einer alten Version"

  • Anpassen einiger Anwendungen (z. B. Expander) an ein schreibgeschütztes Dateisystem


Mittwoch, 29. Mai 2013

Packagemanager Statusreport

Ingo und Oliver haben jetzt ihre 160 bezahlte Stunden am Packagemanagement abgearbeitet - Oliver noch nicht ganz, weil er noch etwas durch sein vorheriges Projekt aufgehalten wurde und so nicht wie Ingo von Anfang an wirklich vollzeit bei der Sache war. Nach dem Eröffnungs-Blogpost und dem Zwischenstands-Report ist nun sozusagen der Schlussbericht zu ihrer Zwei-Monatsarbeit erschienen.

Ingo führt darin folgende Fortschritte seit dem Zwischenbericht auf:

  • Ästhetische Verbesserungen, Refactoring, um den Code einfacher unterhalten zu können.

  • Komfortablere Benutzung und neue Optionen, die insbesondere Portierungen mit haikuporter vereinfachen. So wird nun der Originalcode eines Ports in ein neues git Repository geschoben und die Haiku-spezifischen Patche hinzugefügt. So lassen sich Änderungen später einfach erkennen und anpassen. Viel bequemer als das alles immer von Hand zu machen.

  • Strengere Auswertung von Abhängigkeiten

  • Neue Features, insobesondere die Möglichkeit unterschiedliche Pakete eines Ports zu schnüren, beispielsweise ein Entwicklungs-Paket, ein Doku-Paket, ein Debug-Info-Packet etc.

Relativ viel Zeit wurde darauf verwendet die "Build-Rezepte" der von Haiku benötigten Softwareports zu erstellen. Obwohl oft bereits eine .bep Datei vorhanden war, musste viel angepasst werden, da Haikus Packagemanager flexibler ist was Dateipfade angeht. Auch wurde die Verzeichnis-Struktur geändert.

Nachdem nun fast alle Packages, die für das Herstellen eines Haiku-Images benötigt werden, erstellt wurden, konnte der PackageManagement-Branch zum ersten mal seit zwei Jahren auf den momentanen Haiku Main-Branch gezogen werden.

Desweiteren wurde das Package-Format verändert, so dass nun selbst der Bootloader als unkomprimiertes Package vorliegt, das direkt vom Stage-1-Bootloader angesprungen werden kann. Außerdem können Pakete nun Metainformationen enthalten, was globale Einstellungen oder Benutzereinstellungen angeht, "Unix" User- und Gruppeninformationen oder ob ein Skript nach der Installation ausgeführt werden soll.

Neben diesen neuen Features wurde das Format auch noch auf seine Komprimierbarkeit optimiert. Die Daten werden in 64kB Blöcke aufgeteilt und komprimiert. Anhand einer Art Inhaltsverzeichnis, kann das Package-Filesystem aber immer noch schnell auf die Inhalte zugreifen, ohne z.B. das komplette Paket dekomprimieren zu müssen. Das Package-Filesystem cached diese dekomprimierten Blöcke jetzt, was die Performance weiter verbessert.

Die Komprimierung ist dabei um einiges besser als bei zip, eher in der Liga von tar.gz. Theoretisch ließen sich für den Download bestimmte Packages weiter verkleinern, indem das Packet ohne Kompression erstellt und anschließend per xz zusammengepackt wird.

Während ihrer Arbeit tat sich ein Problem auf, mit dem die beiden nicht gerechnet hatten: Cross-compiling Pakete. Ganz früher enthielt das Haiku Repository den kompletten Code aller benötigten Programme. Nach und nach wurden diese Portierungen jedoch ausgegliedert und erst während dem Build geladen und im Image installiert. Das spart Zeit beim Kompilieren, die Programme können extern "maintained" werden und sie müssen nicht in Haikus jam-basiertes Buildsystem integriert werden.

Der Nachteil ist natürlich, dass Portierungen auf andere Plattformen schwieriger geworden ist, da erstmal Pakete der Portierungen der benötigten Programme vorhanden sein müssen. Schlimmer noch, einige Pakete werden gebraucht, um Haiku selbst überhaup kompilieren zu können (z.B. der Kompiler...).

Um dieses Problem zu lösen, müssen diese essentiellen Pakete erstmal auf einer anderen Platform erstellt werden, also braucht man eine Cross-Compile-Umgebung.

Ingo gibt folgende Anleitung, wie man Haiku so von Null aufbaut:

  • Man konfiguriert den Haiku Build wie gewohnt, inkl. die Erstellung eines Cross-Compilers.

  • Man baut "haiku_cross_devel.hpkg", das die Haiku Header, libroot und den Glue-Code enthält, also alles um Software für die Zielplattform Haiku erstellen zu können.

  • Jetzt schaut man in das haikuports.cross Repository. Hier befinden sich alle "Build-Rezepte" die man benötigt, um die Programme zu erstellen um Haiku zu bauen. Mit diesen Rezepten baut man mittels haikuporter jetzt die nötige Software, inkl. der haiku_cross_devel package.

  • Jetzt baut man ein minimales Haiku, inkl. der cross-built packages.

  • Dann bootet man dieses Mini-Haiku und baut alle Packages.

  • Jetzt sind alle benötigten Packages vorhanden und man kann ein komplettes Haiku wie gewoht bauen.

Zur Zeit muss man diese Cross-Building-Packages noch unter Haiku bauen, wegen dem benötigten Package-Dateisystem und den Features zum Lösen von Abhängikeits durch haikuporter.

Diese ganze Cross-Kompiliererei wird in Kürze nötig, da es bisher nur x86 gcc2 Pakete gibt, bald aber auch gcc4 und x86-64 Pakete benötigt werden.

Es ist also noch viel zu tun... Da trifft es sich gut, dass Ingo und Oliver ihre Verträge verlängern konnten. \o/

Samstag, 11. Mai 2013

Mini-Spenden per GoodSearch

Haiku Inc. ist seit neuestem bei GoodSearch gelistet. GoodSearch ist eine Suchmaschine auf Yahoo-Basis, bei der für jede Suchanfrage US$0.01 an eine Organisation gespendet wird, die sich der Benutzer aussuchen kann. Ausgenommen von dieser Regelung sind Suchen in den Kategorien "Bilder" und "Videos", Suchen nach bestimmten URLs oder innerhalb einer Site, oder wenn man nach demselben Begriff innerhalb von 24 Stunden sucht. Alle Ausnahmen sind in den FAQ gelistet.

Mal sehen, ob das eine relevante Einnahmequelle für Haiku werden kann. Wenn da hundert Leute jeden Tag 5 oder 6 mal was Suchen, kommen im Jahr auch gute $2.000 zusammen. Ich werde es auf alle Fälle mal ausprobieren und habe GoodSearch zu meiner Startseite im WebPositive gemacht. Da GoodSearch natürlich werbefinanziert ist und man eingeloggt sein muss, um die 1-Cent-Spende zu bekommen, empfiehlt es sich wohl ein Profil unter Pseudonym mit Wegwerf-Mailadresse anzulegen...

Freitag, 10. Mai 2013

TuneTracker 5 erstmals unter Haiku

Dane Scott liefert seine Radioautomationssoftware TuneTracker jetzt zum erstenmal für bzw. zusammen mit Haiku aus. Bisher lief TuneTracker immer noch unter BeOS, aber Haiku ist mittlerweile offenbar stabil genug und liefert alle nötigen Features um rund um die Uhr in einem professionellen Umfeld eingesetzt werden zu können.
Natürlich steckt auch der Druck dahinter, TuneTracker auf moderner Hardware laufen zu haben. BeOS kommt mit aktueller Hardware meist nicht zurecht und alte, BeOS-fähige Hardware ist kaum noch aufzutreiben. Da kompatible Komponenten zu finden eine heikle Sache sein kann, bietet Dane nicht nur die Software TuneTracker an, sondern auch optional eine Palette unterschiedlich ausgestatter Komplettrechner.

Wer auf dem Laufenden in Sachen TuneTracker und Audio unter Haiku bleiben möchte, sollte nicht nur die TT News Seite im Auge behalten, sondern auch Dane's Blog leBUZZ. Hier wurde kürzlich ein Aufruf für Vektoricons für TuneTracker gepostet. Wer das nötige Talent hat, kann Dane dabei helfen TuneTracker noch besser in die neue Haiku-Umgebung zu integrieren und dabei sogar noch ein bisschen Geld verdienen.

Donnerstag, 11. April 2013

Unixmen suchen Schreiberling

Chris Jones vom online Magazin Unixmen hat kürzlich auf der Development Mailingliste nachgefragt, ob jemand Interesse hat regelmäßig Artikel über Haiku für das Magazin zu schreiben. Wie der Name vermuten lässt, ist Unixmen momentan noch ziemlich Linux-lastig, aber offenbar möchte man den Fokus auf Opensource generell erweitern. Eine gute Möglichkeit für Haiku einen kleinen Fuß in eine kleine Tür zu kriegen...

Wer Interesse hat, gute Englischkenntnisse vorausgesetzt, findet Chris' Kontaktadresse in dem genannten Mailinglisten-Beitrag.

Neueröffnung: Haikuza

Seit kurzem gibt es ein neues Forum für Haiku User: Haikuza.

Gestartet wurde es von lord_webi, offenbar ein BeOS Veteran der ersten Stunde, der in Haiku wieder entdeckt hat was er an BeOS so schätzte. Unter den (zu?) vielen Kategorien bietet das Board auch Internationale Bretter für französische, italienische, spanische und deutsche User. Kein Wunder, ist er doch selbst Deutscher. Internationale Haiku Foren gibt es ja nicht so viele, also ist das vielleicht eine Lücke, die Haikuza füllen kann.

Wer Lust hat, kann ja mal vorbeischauen und m'lord_webi helfen das Forum mit Leben zu füllen. Aller Anfang ist schwer...

GSoC 2013 ohne Haiku

Sechs mal schon hat das Haiku Projekt am Google Summer of Code teilgenommen. 2013, im verflixten siebten Jahr, wurde Haiku nicht auserwählt Studenten über den Sommer Vollzeit in die Opensource Welt einzuführen. Die wahrscheinlichste Erklärung dürfte sein, dass Google nicht immer die selben Organisationen im Programm haben möchte und auch mal anderen Projekten eine Chance geben will. Haiku war in den vergangenen GSoCs sehr erfolgreich, insbesondere in 2012, und wird es halt nächstes Jahr wieder probieren.

Wer trotzdem den diesjährigen GSoC verfolgen will, oder als Student teilnehmen möchte, für den gibts eine Liste aller 170 Mentor-Organisationen.

Freitag, 29. März 2013

Vertragsarbeit an Packagemanager begonnen

Etwas verzögert durch Restarbeiten für ihren letzten Auftraggeber, haben Ingo und Oliver jetzt ihre durch Haiku Inc. gesponserte Arbeit am Packagemanager begonnen. Die letzte große Hürde für Haikus Beta-Phase wird so mit 2 x 320 Stunden angegangen. Da die erwähnten Restarbeiten noch nicht ganz abgeschlossen sind, ist es allerdings möglich, dass diese vereinbarte Vertragszeit etwas länger als die angepeilten 2 Monate gestreckt werden wird.

In einem ersten Blogeintrag gibt Ingo einen groben Überblick über die erste Planung der beiden.

Zuerst werden sie sich auf das Erzeugen von Packages konzentrieren. Dazu müssen die BEP Build-Rezepte so angepasst, dass am Ende die zum Bauen von Haiku benötigten Packages rauspurzeln.
Danach kann Ingo seine Arbeit an libsolv abschließen, mit der Abhängigkeiten unter den Paketen gelöst werden.
Oliver nimmt derweil haikuporter und das BEP-Format unter die Lupe. Haiku soll von den Metadaten anderer opensource Projekte profitieren, um Abhängigkeiten von Paketen, aber auch deren Buildfeatures und Bugs zu erkennen. Nach einer Analyse von MacPorts, pkgsrc, Gentoo-Portage und anderen Kandidaten, lassen sich die Gentoo-Portage EBuild Dateien dafür am einfachsten nutzen.
Ggf. werden die BEP Dateien von Python zu Shellscripts oder C++ umgewandelt. Dadurch kann man sich das Parsen sparen und eleminiert das komplexe Python-System, dass mehr Probleme bereiten kann als es zur Zeit Vorteile bringt.

Wenn haikuporter erstmal anhand eines Packagenamens das Paket komplett mit seinen Abhängigkeiten bauen kann, kann man aus mehreren Paketen auch automatisch ein Repository generieren. Ist das geschafft, gehts an die Repository-Infrastruktur, verbesserte Features zur Laufzeit (z. B. Packages installieren und deinstallieren) und die Anpassungen für die Nutzung des Packagemanagements in Haikus Buildsystem.

Wer stets informiert sein möchte, sollte die Blogs von Ingo und Oliver im Auge behalten, ebenso das PackageManagement Wiki.
Der Code lässt sich in ihren GitHub Repos (Ingo, Oliver) verfolgen und im HaikuPorts Repository befinden sich ebenfalls "package-management" Branches unter "haikuporter" und "haikuports".

Endlich NFSv4 integriert

Das "Google Summer of Code 2012" Projekt von Paweł Dziepak wurde jetzt offiziell in Haiku integriert. Paweł hat seit letztem Sommer fleißig in seinem GitHub Branch weiter an NFSv4 gearbeitet und diverse Verbesserungen eingebaut und Fehler behoben. Mittlerweile hat Paweł (wie übrigends alle fünf weiterhin aktiven GSoC Studenten des letzten Jahrs!) Schreibrechte für Haikus "Mainbranch" erhalten. So konnte er die Früchte seiner Arbeit gleich direkt unter eigenen Namen reinstellen.

Um das Netzwerk-Dateisystem selbst einmal ausprobieren zu können, muss man ein aktuelles Nightly Image installieren. Dannach lässt sich das Netzlaufwerk im Terminal per

mount -t nfs4 -p "server_address:path flags" directory

einhängen. Da das NFSv4 Protokoll nicht direkt dafür ausgelegt ist, werden Haikus erweiterte Attribute zur Zeit leider noch nicht unterstützt. Weitere Infos gibt's in Pawełs Blog.

Paweł macht momentan übrigends Urlaub von NFS und wendet sich dafür Sicherheitsaspekten in Haiku zu. In seinem ASLR Branch experimentiert er mit randomisierten Adressräumen und ähnlichen Sicherheitsvorkehrungen, die das System weniger berechenbar für Angriffe machen.

Mittwoch, 27. Februar 2013

Alle Google Dinge sind drei

Drei kurze Meldungen die Google und Haiku betreffen.

  • Beim letzten Google Code-In wurden von den teilnehmenden Organisation die beiden besten Studenten gewählt. Diese wurden dann zusammen mit etwaiger Erwachsenen-Begleitung für vier Tage ins Google-Hauptquartier nach Mountain View, Kalifornien, eingeladen.

    Herzlichen Glückwunsch an alle Gewinner:

    • Agustín Zubiaga, Uruguay - Sugar Labs
    • Akshay S Kashyap, India - BRL-CAD
    • Aleksandar Ivanov, Bulgaria - RTEMS
    • Aneesh Dogra, India - Sugar Labs
    • Aviral Dasgupta, India - Sahana Software Foundation
    • Cezar El-Nazli, Romania - BRL-CAD
    • Conor Flynn, Ireland - Apertium
    • Drew Gottlieb, United States - Copyleft Games Group
    • Illya Kovalevskyy, Ukraine - KDE
    • Liezl Puzon, United States - Sahana Software Foundation
    • Mathew Kallada, Canada - RTEMS
    • Matthew Bauer, United States - The NetBSD Project
    • Mingzhe Wang, China - The NetBSD Project
    • Mohammed Nafees, India - KDE
    • Nicolás Satragno, Argentina - The Fedora Project
    • Qasim Iqbal, Canada - Apertium
    • Samuel Kim, United States - Copyleft Games Group
    • Ze Yue Wu, Australia - The Fedora Project

    Die beiden "Haiku-Studenten" waren:

    • Przemysław Buczkowski, Poland - Haiku
    • Vladimir Angelov, Bulgaria - Haiku

    Interessant: es ist nicht nur kein Deutscher unter den Siegern, auch unter "ferner liefen" hatte Haiku keinen einzigen deutschen Schüler/Studenten (Verteilungstorte). Das war beim letzten Mal als es noch Bargeld gab anders. Zufall oder symptomatisch?

  • Das Haiku Projekt wird sich auch dieses Jahr für den Google Summer of Code (GSoC) bewerben. Sollte Haiku als Mentor-Organisation wieder auserwählt werden, wäre dies das siebte Mal in Folge. Beim GSoC haben Studenten die Gelegenheit drei Monate vollzeit und bezahlt in die Opensource-Welt hineinzuschnuppern. Dabei stehen ihnen erfahrene Mentoren der jeweiligen Projekte zur Seite. Die reine Programmierzeit beginnt am 17. Juni 2013 und endet am 23. September 2013. Alle wichtigen Informationen finden sich in der offiziellen Ankündigung.

  • Zu guter Letzt - hat wahrscheinlich sowieso jeder schon mitbekommen - Google war so großzügig dem Haiku Projekt $5.000 zu spenden. Vielen Dank, Google! Für das Haiku Projekt ist das ein ansehnlicher Betrag, der wie alle Spenden in erster Linie in die Entwicklung gesteckt werden soll. Generell entwickelt sich das Spendenaufkommen recht positiv, siehe Haiku Inc.'s Blogpost dazu.

Freitag, 25. Januar 2013

Google Code-In 2012 Bilanz

Der Google Code-In 2012 ist vor kurzem zuende gegangen. 168 Aufgaben wurden in dieser Zeit von den Studenten (alle unter 18 Jahre) für Haiku erfolgreich gelöst.

Da diesmal keine Übersetzungsarbeiten zugelassen waren, lag der Schwerpunkt auf der Programmierung. Es wurden eine Menge Tickets im Bugtracker bearbeitet und über 50 Bep-Dateien geschrieben. Bep-Dateien dienen Haikuporter zum erzeugen von Paketen diverser Anwendungen durch automatisches herunterladen, kompilieren und ggf. patchen direkt aus dem Quellcode. Haikus Paketmanager in spe werden eben diese Bep-Dateien als Grundlage für die eigenen Pakete dienen. Je mehr Beps also bei der Einführung zur Verfügung stehen, desto größer schon zu Beginn das Angebot im zukünftigen "App-Store".

Weitere GCI-Aufgaben war z.B. eine Sammlung freier Klänge für Systemsounds, die wohl bald als Optionalpackage im Terminal mit "installoptionalpackage" herunterzuladen sind. Ebenso entstanden einige Videos, die einige Haiku-typischen Konzepte zeigen, wie Stack&Tile, Translatoren, Queries und (bald) ein "Hello World" in C++.

Bei diesem GCI haben sich eine handvoll Studenten hervorgetan, die auch noch nach Ende des GCI aktiv in der Haiku-Entwicklung sind. Sie sind auch bei einer Sonderpreisverleihung von Google am 4. Februar 2013 dabei, bei der die herausragenden Teilnehmer geehrt werden.
Würde mich nicht wundern, wenn wir den einen oder anderen Studenten in einem zukünftigen Google Summer of Code wiederfinden.