yab ist "Yet Another BASIC", ein BASIC Dialekt mit dem sich auch unter Haiku Programmieren lässt. Es ist zur Zeit die einzige Möglichkeit für Haiku Anwendungen mit grafischer Oberfläche zu entwickeln, ohne gleich die große C++ Kiste aufmachen zu müssen.
"Chefentwickler" Jan hat kürzlich die neue Version 1.7 herausgebracht. Neben Bugfixe und Verbesserungen einiger GUI-Elemente, wurde insbesondere der Umgang mit Haikus Dateiattributen erweitert. Außerdem funktioniert das Lokalisieren wieder, unter anderem auch das Umwandeln von alten Zeta in Haiku Kataloge.
Wer immer gut über yab informiert sein will und sich mit Gleichgesinnten austauschen möchte, für den gibt es ein Forum und diverse Workshops (unter "Entwicklung").
Dienstag, 14. Februar 2012
YAB in neuer Auflage v1.7
Humdinger,
18:30
- Labels:
Programmierung
0
Kommentare
Donnerstag, 26. Januar 2012
Voptop Beta 1.0.0
Robert Stiehlers Voptop ist eine Client/Server Lösung für anonyme Telefonie und Instant Messaging in einem Peer-to-peer Netzwerk.
Robert hat sein System auch schon auf dem BeGeistert 024 vorgestellt, doch damals war es noch nicht wirklich einsatzfähig. Jetzt allerdings ist die Beta 1.0.0 des Haiku Clients zum Testen für alle erschienen. Wie man an den Downloadlinks auf der Seite sieht, sollen später Anwendungen für weitere Betriebssysteme folgen. Folgt man dem "Haiku" Link, kann man zwischen einer Version für Haiku Alpha 3 und neueren "nightly" Haiku Versionen ("post Alpha 3") entscheiden.
Dem Programm liegen Anleitungen in Deutsch und Englisch bei, um den Einstieg zu erleichtern. Am wichtigsten dürfte sein den Port 48617 zu öffen (Port-Forwarding im Router, ggf. Firewall konfigurieren), da Voptop darüber kommuniziert.
Während der private Gebrauch von Voptop kostenlos sein wird, soll sich die Infrastruktur aus Werbeeinnahmen finanzieren. Dazu wird es einerseits Werbung auf der Voptop Webseite und dezente Banner in der Client Software. Außerdem ist angedacht in der Zeit bis der Gegenüber "abhebt" Werbespots zu schalten.
Bis es soweit ist, muss allerdings noch ein bisschen weiter entwickelt werden. Dazu gehört auch das Beheben von Fehlern. Wer welche findet oder Vorschläge oder Ideen zur Verbesserung hat, kan diese in einem Bugtracker eintragen.
Humdinger,
18:53
- Labels:
Software
1 Kommentare
Sonntag, 22. Januar 2012
BeGeistert 024 - Video zum Package Manager
Neben Oliver Tappes Vortrag zum Wechsel von SVN zu Git (Youtube: "Migrating Haiku from SVN to Git") gibt es noch einen weiteren Vortrag von BeGeistert 024 als Video. Darin erklären Ingo Weinhold und Oliver Tappe warum Haiku einen Paketmanager bekommt und wie er funktionieren wird. Was bereits alles funktioniert demonstrieren sie an einem Haiku-System, das bereits vollständig aus Paketen besteht. Abschließend werden Fragen der anwesenden Benutzer und Entwickler beantwortet.
Das Video ist in 5 Teilen als "Haiku Package Manager" bei YouTube zu sehen. Die Tonspur ist ziemlich leise und das Bild wackelt manchmal ein bisschen, da ich weiter weg vom Geschehen war und dummerweise mein kleines Stativ nicht benutzt hatte...
Die Clips lassen sich übrigens schön mit UberTuber auch unter Haiku anschauen... :)
Wie schon das SVN-zu-Git-Video, hab ich die Clips unter Haiku mit Clockwerk zusammengestellt und dann unter Ubuntu mit Avidemux in die von YouTube erlaubten 15 Minuten Clips geschnitten und enkodiert.
Humdinger,
17:53
- Labels:
BeGeistert
0
Kommentare
Donnerstag, 29. Dezember 2011
Programming with Haiku, Lektion 22: QuickEdit (1)
Nach einer längeren Verschnaufpause meldet sich DarkWyrm mit einer weiteren Lektion in seinem C++ Kurs "Programming with Haiku" zurück. Es ist der erste Teil in einer kleinen Reihe, die anhand eines simplen Texteditors zeigt, wie man auch etwas größere Projekte plant und verwirklicht.
Das Projekt QuickEdit basiert hauptsächlich auf einen BTextView, der bereits viele der angestrebten Features mitbringt, wie ein Blick auf dessen Definitionen zeigt. Im ersten Teil wird das Hauptfenster mit dem BTextView und die Dialoge samt Funktionalität fürs Laden und Speichern erzeugt. Dabei wird das Translation Kit benutzt, um Formatierungen wie fett, kursiv, Schriftarten und Farben mitzuspeichern.
Alle Folgen von "Programming with Haiku" können in Darkwyrm's Library nachgeschlagen werden.
Humdinger,
10:47
- Labels:
Programmierung
0
Kommentare
Freitag, 23. Dezember 2011
Haiku Werbe-/Tutorial-Video
Wer es noch nicht gesehen hat, seit Osterhasi Nickolausi gibt es Haiku: An Inside Look zu sehen (UberTuber spielt es :)), das Matt "RhapsodyGuru" Nawrocki im Rahmen einer Arbeit als "Communication Arts Major" angefertigt hat.
Das etwa 11 Minuten lange Video ist eine Einführung für Leute, die von Haiku noch nicht gehört, oder zumindest noch nicht live gesehen haben. Matt beginnt mit der Vorstellung der grafischen Oberfläche, dass sie für BeOS erdacht und dann von den Haiku Programmierern weiter verfeinert wurde.
Es wird gezeigt, wie man die Deskbar in die Ecken oder an den unteren oder oberen Rand des Bildschirms verschieben kann und wie man mit dem ProcessController aus dem Deskbar-Tray Infos über die laufenden Threads bekommt. Danach sieht man die Möglichkeiten von Stack&Tile zur Anordnung mehrerer Fenster.
Im zweiten Kapitel erfährt man wie per DriveSetup eine Partition anlegt und initialisiert und anschließend Haiku darauf installiert.
Das dritte Kapitel besteht aus einer Montage, die verschiedene Anwendungen wie WebPositive, WonderBrush, Magnify, Mail oder MediaPlayer in Aktion zeigt.
Am Ende kündigt Matt weitere Videos für die Zukunft an. Diese werden dann wahrscheinlich eher Tutorialcharakter haben und einige Features in größerer Tiefe vorstellen und weniger PR enthalten.
Einige solcher Video-Tutorials gibt es übrigens bereits bei Leszeks Haiku Screencasts.
Humdinger,
09:16
- Labels:
Haiku
0
Kommentare
Mittwoch, 30. November 2011
M.Lotz: Zurück von der Bug-Safari
Michael Lotz, momentan Haiku-Vollzeitentwickler, hat einen weiteren Bericht über seine Arbeit geschrieben.
Wie in den Wochen zuvor, war er nochmal total im "Kernelmode" und spürte einigen tief im System versteckten Bugs hinterher. Dabei arbeitete er an einer Erweiterung des Interrupt Routing Codes, was hoffentlich Ticket #8111 lösen wird. Um der Ursache für Ticket #8085 auf die Spur zu kommen, beschäftigte er sich nochmal etwas ausführlicher mit dem Umgang mit "USB Legacy", konnte allerdings trotzdem nicht herausfinden was an Haikus Implementierung falsch sein könnte.
An dieser Stelle bittet Michael inständig Tickets im Bugtracker aufzugeben. Nur so können die Entwickler überhaupt von Problemen erfahren und an Lösungen arbeiten. Insbesondere kritische Fehler, die ein Booten des Systems verhindern, treten oft nur bei bestimmten Hardwarekonfigurationen auf und können daher von jemanden der nicht die gleiche Hardware hat nicht mal erahnt werden.
Ein Beispiel für so einen Fall ist Ticket #8153, welches einzig mit den dort hinterlegten Informationen gelöst werden konnte.
Um Problemen nachspüren zu können die nur bei längerer Laufzeit auftreten, hat sich Michael einen Zweitrechner aufgebaut, damit er nebenher produktiv weiterarbeiten kann. Hier laufen z.B. auch Ermittlungen zu Ticket #7889, bei dem immer wieder ganze Audio CDs ausgelesen werden müssen.
Auf dem Zweitrechner fand auch eine bereits erfolgreiche Detektivarbeit statt, die das Ticket #8068 lösen sollte, ein Bug der den app_server abschießt. Michael stieß bereits selbst auf diesen Crash während er am Treiber für die Sandybridge-Grafik bastelte. Er tritt nur unter VESA auf und, wie sich herausstellte, nur bei Multi-CPU Maschinen. Außerdem schien der app_servers nur Opfer zu sein und nicht der eigentliche Auslöser des Crashs. Ein Skript, das ständig die Auflösung wechselt, konnte den Crash beliebig reproduzieren.
Die Fährte führte zum vm86 Code, der als virtueller 8086 Mode gestattet VESA BIOS Aufrufe zu benutzen. Nachdem er sich etwas in den vm86 Code eingearbeitet hatte, wurde ihm klar, dass Code zum Interrupthandling bei den letzten Änderungen nicht aktualisiert wurde. Leider stellte sich raus, dass zumindest dieser Bug nicht daran lag.
Da der Crash nicht bei Einzel-CPU Maschinen auftrat und der virtuelle 8086 Mode generell nicht anfällig für Thread-Scheduling ist, musste das Problem beim Verlassen des 8086 Modes liegen. Wie Michael herausfand, wird dabei nicht alles wieder so hergestellt, wie es vor dem Eintritt in den 8086 Modus war. So wurde auch das %fs Register wieder hergestellt, das Haiku für den CPU-spezifischen Thread Local Storage (TLS) (eine Art Thread-gebundener Speicher) verwendet. Das geht solange gut, bis der Thread der den Mode-Wechsel macht durch den Scheduler auf eine andere CPU gewechselt wird während er sich noch im 8086 Modus befindet. Beim Wechsel zurück in den User-Modus stürzt dann der nächste ab, der TLS benutzt.
Der eigentliche Fix für den Bug waren dann nur wenige geänderte Zeilen im Programmcode.
Das zeigt mal wieder, was für große Auswirkungen kleine Änderungen haben können. Und wie wenig der Umfang eines Code-Commits den dahinter stehenden Aufwand wiederspiegeln.
Am Ende seines Blogs kündigt Michael seine Pläne für die nächste Zukunft an: Es geht wieder zurück zum Funknetzwerk. Allerdings nicht um Wifi selbst oder dessen Verschlüsselung; das ist bereits funktionsfähig. Ihm geht es um die Alltagstauglichkeit, und das ist in erster Linie die automatische Anmeldung an Netzwerken ohne ständige Passworteingabe.
Dazu wird er eine API zum Verwalten und sicheren Speichern von Passwörtern, Schlüsseln und Zertifikaten verallgemeinern und implementieren, die Axel Dörfler vor einiger Zeit mal geplant hat. Diese wird dann systemweit zur Verfügung stehen und kann auch von anderen Anwendungen genutzt werden. Davon könnte beispielsweise WebPositive profitieren, um die Logins zu diversen Webseiten zu verwalten.
Humdinger,
19:09
- Labels:
Haiku
0
Kommentare
Donnerstag, 24. November 2011
Wieder ein "Haiku Stipendium" in Neuseeland
Die University of Auckland in Neuseeland setzt weiter auf Haiku als Plattform für ihre Forschungsarbeit. Hier wurde unter Christof Lutteroth und Gerald Weber das "Auckland Layout Model (ALM)" entwickelt und auch "Stack & Tile" zur Anordnung von Fenstern und andere GUI Projekte, wie das Umbauen von GUI-Elementen durch den Benutzer zur Laufzeit, wurden hier erdacht.
In der Vergangenheit wurde dafür schon einmal ein Stipendium vergeben, damals ein volles 3-Jahres-PhD-Scholarship an Clemens Zeidler, und jetzt wird ein weiterer Haiku Entwickler in den Genuss eines finanzierten 2-montigen Sommerstudiums in Kiwi-Land kommt. Alex Wilson, der über den Google Summer of Code 2010 zu Haiku kam und dabei tief in das Layout Management vorgedrungen ist, ist wohl die Idealbesetzung für die Forschungsarbeit "Integrating Web Apps and GUIs". Eine Super Chance für Alex sich und nebenher auch Haiku weiterzuentwickeln!
Doch damit nicht genug. Neben diesem Stipendium über 5.000 $NZ würde das Computer Science Department unter Christofs und Geralds Führung gern noch weitere Haiku-basierte Forschungsobjekte betreuen. In einem offenen Brief suchen sie daher nach Leuten mit abgeschlossenen Studium, die ihr Ph.D. oder Master in diesem Feld machen wollen. Sie müssten dabei zwar für die anfallenden Gebühren aufkommen, in vielen Ländern gibt es für so ein Auslandsstudium allerdings diverse Stipendien.
Wer bereits Gelder von einer Universität erhält, kann als Gastforscher untergebracht werden, erhält einen Arbeitsplatz an der Uni und kann dann einige Zeit mit den Forschern der University of Auckland zusammenarbeiten. Viele Unis unterstützen solche Gastbesuche auch finanziell.
Wer Interesse hat ernsthafte Forschung unter Haiku zu betreiben, und das auch noch praktisch in Mittelerde, möchte sich bei Christof Lutteroth oder Gerald Weber melden.
Humdinger,
15:42
- Labels:
Haiku
0
Kommentare
Freitag, 18. November 2011
Berichte von Michael Lotz' Auftragsarbeit
Wie berichtet, arbeitet Michael Lotz zur Zeit im Auftrag von Haiku Inc. mehr oder weniger Vollzeit an Haiku. Ab und an schreibt er darüber auf seinem Blog auf der Haiku Webseite. Bisher sind zwei sehr detaillierte Berichte dort erschienen, die ich hier nur kurz zusammenfassen werde. Natürlich wünschen sich alle Haiku Fans noch öfter Statusberichte lesen zu können, allerdings sagt Michael selber, dass seine Arbeit oft langwierig ist und für Außenstehende meist wenig spektakuläre Erfolge zeitigt.
Der erste Monat der Vertragsarbeit
vom 27. Oktober 2011
Das erste große Ziel waren WPA-verschlüsselte Funknetzwerke. Nachdem unverschlüsselte und WEP-kodierte bereits seit einiger Zeit funktionierten, war dies ein ziemlich schwerwiegender Schwachpunkt, da nur WPA2-verschlüsselte Netzwerke adäquate Sicherheit bieten. Der Weg führt über den in der UNIX-Welt verbreiteten wpa_supplicant, der in der Vergangenheit schon von mehreren Leuten versucht wurde zu portieren, aber nie wirklich problemlos lief.
Nachdem Michael den entscheidenden Bug schon im Sommer beseitigt hatte, fehlte noch eine echte Integration in Haiku. Das Problem war, dass der wpa_supplicant aus der Ein-Thread-UNIX-Welt stammt und sich nicht ohne weiteres in die Multi-Thread-Welt von Haiku einfügt. Anstatt sich abzuspalten und den wpa_supplicant nun komplett auseinanderzunehmen - und sich dadurch von zukünftigen Entwicklungen abzukoppeln - entschied sich Michael die ganze Sache zu serialisieren. Das heißt Anfragen werden nacheinander abgearbeitet, wie aus der UNIX-Welt gewohnt.
Das war nicht ganz trivial, aber am Ende wurde es zu einer ziemlich stabilen Komponente, die man als OptionalPackage installieren kann. Mit einem aktuellen Nightly Image geht das im Terminal mittels installoptionalpackage wpa_supplicant.
Zur Auswahl des Funknetzwerks und Eingabe des Passworts erscheint momentan noch jedes mal ein kleines Fenster. Später soll das Passwort in einer Art Schlüsselbund sicher aufbewahrt werden. Das soll dann aber eine allgemein nutzbare Lösung werden, es muss also erst eine gute API entwickelt werden.
Die zweite große Herausforderung war die Unterstützung für Michaels neuen Thinkpad X1, den er sich nicht zuletzt zulegte, um effektiver arbeiten zu können als mit seinem in die Jahre gekommenen HP Laptop. Mit einem 2.5GHz schnellen Core i5, Sandybridge Chipset und integrierter Intel Grafik, Wifi und HDA-Audio, sollte Haiku ohne große Probleme darauf zum Laufen zu bekommen sein. Gerade auch weil Intel gut mit Opensource Treiber zusammenarbeitet und Spezifikationen verfügbar macht.
Neben den momentan noch nicht nutzbaren USB 3.0 Ports und dem noch stummen HDA Audio, fiel sofort die nicht unterstützte Sandybridge-integrierte Grafik auf. Da der VESA Modus nicht die native Auflösung brachte, war alles verzerrt und verschwommen. Um richtig arbeiten zu können, musste also der intel_extreme Treiber aufgebohrt werden. Das gelang Michael auch nach relativ kurzer Zeit, jedoch hängt alles noch von der korrekten Initialisierung durchs BIOS ab und die Ausgabe über HDMI funktioniert noch nicht.
Nachdem er wegen Krankheit etwas ausgebremst wurde, ging Michael zur Abwechslung auf Bugjagd indem er sich ein paar interessante Einträge im Bugtracker vornahm. Die Ursache eines interessanten Effekts, bei dem ein Fenster beim Wechsel der Arbeitsfläche auf der verkehrten Arbeitsfläche gezeichnet wird, konnte er leider noch nicht aufspüren.
Dies zeigt einen der Hauptvorteile so eines Zeitvertrags: Man hat die Zeit schwierigen Problemen nachzugehen, auch wenn in diesem Fall die Lösung noch aussteht. Gleichzeitig zeigt es aber auch wie frustrierend es sein kann Stunde um Stunde im System zu wühlen, und am Ende das ursprüngliche Problem doch nicht gelöst zu haben. Stress, dem man als Freizeit-Programmierer aus dem Weg gehen kann, nicht aber wenn man so gewissenhaft wie Michael einen Vertrag erfüllt.
vom 17. November 2011
Seit dem letzten BeGeistert ist Michael in Kernel und Speichermanagement vertieft. Während des BeGeistert Code Sprint hat er zusammen mit Ingo Weinhold Abstürze durch zufällig überschriebene Speicherbereiche und nicht freigegebenen Speicher untersucht. Dazu haben sie diverse Mechanismen zum Debuggen entwickelt, die helfen die Ursachen von speicherabhängigen Abstürzen zu ermitteln.
Ein weiteres Debugging Tool wurde geschaffen, um nachvollziehen zu können welcher Prozess Speicher anfordert ohne ihn wieder freizugeben. So konnte Michael feststellen warum selbst bei einem ruhenden System die Speicherauslastung stetig stieg. Dabei stellte sich heraus, dass der freie Speicher gar nicht wirklich immer weniger wurde, sondern dass er nur falsch berechnet wurde. Jetzt wird die Speicherauslastung richtig angezeigt, was nicht nur eine kosmetische Korrektur ist, da dieser Wert natürlich auch beeinflusst wie das System reagiert (wenn es z.B. denkt der Speicher würde knapp).
All diese Debug Tools wendet Michael an, wenn er Tickets in dieser Richtung aus dem Bugtracker bearbeitet. Oft müssen dazu vom Bugmelder noch einige Infos erfragt werden, was durch das hin und her der Emails und evtl. Zeitzonenunterschiede eine oft mal recht langwierige Geschichte sein kann.
Zudem konnte er den Bug meistens nicht auf seiner Hardware nachvollziehen, wodurch er viel blind in der Logik des Codes herumstochern muss. Jetzt lässt Michael auf einigen seiner anderen Rechner Stresstests laufen und hofft so die Fehler reproduzieren zu können.
Auch wenn dieses Kerneldebugging nicht dafür taugt aufsehenerregende Berichte zu schreiben, die Enduser - immerhin die Mehrheit der Spender für diese Aktion - gerne sehen, so ist es doch dringend nötig. Nur so kann Haiku zu einem stabilen System werden und Alpha/Beta-Phasen irgendwann hinter sich lassen.
Auftragsarbeit ist dazu wie geschaffen, da man sonst kaum Zeit findet so tief in das System einzusteigen und dran zu bleiben. Außerdem gibt es nur wenige, die sich dazu gut genug auskennen, und noch weniger, die sich dazu offenbar so gut wie Michael Lotz dazu motivieren können.
Humdinger,
20:30
- Labels:
Haiku
0
Kommentare