Lange Zeit war die Haiku Webseite nicht gerade ein Aushängeschild für ein Hauptmerkmal von Haiku: gefühlte Geschwindigkeit durch kurze Reaktionszeiten. Das hat sich nun sehr verbessert.
Oliver Tappe hat einige Drupal-Module erneuert, ersetzt oder ganz rausgeschmissen. Hinzugekommen ist ein "Boost" Modul, das vor allem beim Zugriff nicht angemeldeter Besucher auf dynamische Inhalte wie PHP greift. Dann werden statt dynamischer Seiten statische aus dem Cache benutzt. Dadurch steigert sich die Performance um das 30-fache und das System reagiert auch viel besser auf hohe Lasten. Der nächste Slashdot-Effekt kann also ruhig kommen...!
Freitag, 31. Dezember 2010
Haiku Webseite mit Turbo-Boost
Humdinger,
10:30
- Labels:
Sonstiges
0
Kommentare
Dienstag, 28. Dezember 2010
Forschungsauftrag in Sachen Paketmanager
Haiku Inc. ist immer interessiert die eingenommenen Spenden Projekten zur Verfügung zu stellen, die uns näher an Haiku R1 bringen. Nun hat Oliver Tappe sich dafür beworben die Untiefen des Paketmanagements auszuloten. Wie die kürzlich durchgeführte Umfrage gezeigt hat, wird dieses Feature von vielen als unbedingt nötig für eine R1 erachtet und blockiert daher auch die Beta-Phase, die ja definitionsgemäß alle Features der R1 enthalten soll.
Der Auftrag, der über 160 Stunden für die schöne runde Summe von $2,622 ausgeschrieben wurde, umfasst dabei noch keine Implementierung, sondern nur die Untersuchung bestehener Systeme und Ideen, die bereits existieren. So hat man sich ja schon früher Gedanken gemacht und ein Paketformat spezifiziert und ein mögliches PackageFS geschaffen. Außerdem gibt es in der Linuxwelt ja bereits förmlich einen Wildwuchs an verschiedenen Paketverwaltungen. Da liegt es natürlich nahe, sich von dort Inspiration zu holen und vielleicht sogar ganze (Sub-)Systeme zu übernehmen, falls möglich.
Wer dieses und ähnliche Projekte in der Zukunft unterstützen möchte, sollte überlegen, ob er Omas Scheinchen unterm Weihnachtsbaum nicht an Haiku Inc. spendet.
Humdinger,
15:01
- Labels:
Haiku
0
Kommentare
Sonntag, 26. Dezember 2010
Neuer Coverity Scan deckt potentielle Bugs auf
Nach zwei Jahren gibt es für Haiku wieder einen Coverity Scan. Wie Urias McCollough berichtet, wurde der Haiku gcc4-Build r39849 mit Coverity v5 analysiert (vor zwei Jahren war das noch v2.4.1). Dabei wurden 10.506 potentielle Bugs gefunden.
Wer nach "CID#" Codes in den Commit-Logs Ausschau hält, wird sehen dass bereits einige der gemeldeten Fehler beseitigt wurden.
Wer genauer wissen will was es mit Coverity auf sich hat, sollte nochmal Stippis Ausführungen im Gazette Artikel vom letzten Scan durchlesen.
Humdinger,
18:22
- Labels:
Haiku
0
Kommentare
Freitag, 24. Dezember 2010
Haiku macht Druck mit Gutenprint
Bei OSNews ist ein interessanter Bericht über die Portierung von Gutenprint zu lesen. Dank der Spenden vieler User im Rahmen einer Bounty, wurde Michael Pfeiffer dabei unterstützt dieses Druckertreiber-Backend auf Haiku zu portieren.
Gutenprint fügt sich nahtlos ins System; Einrichtung und Konfiguration erfolgt über die Panels des nativen "libprint" Drucksystems. Dieses musste dabei etwas erweitert werden, um noch die zusätzlichen Einstellungsmöglichkeiten, die Gutenprint bietet, abdecken zu können.
Momentan sind so nur die Grundeinstellungen verfügbar, aber sobald ein Bug in der Layout API beseitigt ist, werden noch eine Menge weiterer Einstellungen zugänglich.
In seinem Bericht beschreibt Michael einige der Hürden, die er zu überwinden hatte und gibt abschließend einige interessante Zahlen zu seinem Projekt: Der Speicherverbauch einer Seite in Letter-Größe beträgt bei 300 dpi 32 MiB, bei 600 dpi 128 Mib.
Etwa 3/4 (51 kZeilen) des neuen Druck-Subsystems kommen direkt von libgutenprint, 17% (11 kZeilen) fallen auf Haikus Drucksystem libprint und nur 5% (3 kZeilen) sind dem neuen Gutenprint Treiber geschuldet.
Man sieht, durch die Verwendung der Gutenprint Bibliothek konnte Haikus Druckerunterstützung effizient und mit relativ geringem Aufwand um z.Zt. über 700 Drucker erweitert werden. Vielen Dank dafür, Michael!
Humdinger,
15:14
- Labels:
Bounty,
Haiku
0
Kommentare
Abstimmungsergebnis zu den R1 Features
Die Abstimmung über die R1 Roadmap wurde vor bald zwei Wochen abgeschlossen. Mit einem Newseintrag wollte ich noch etwas warten, um zu sehen was bei der internen Bewertung der einzelnen Features herauskam. Außerdem hätte über die Ergebnisse ja auch eine größere Diskussion auf der Mailingliste entstehen können. Dort wurde bisher allerdings nur kurz über die Bewertung der Unterschiede zwischen der öffentlichen User-Abstimmung und der Umfrage unter den Entwicklern geredet.
An der öffentlichen Abstimmung haben über 1.600 Leute teilgenommen, auf der Entwicklerseite (beschränkt auf diejenigen mit SVN-Schreibrechten) waren es knapp 30. Hier die offiziellen Ergebnisse über alle Punkte im Überblick, farblich hinterlegt sind jeweils die meisten Stimmen):
R1 Blocker | kein Blocker | keine Angabe | ||||
Feature | User | Devs | User | Devs | User | |
#1 | TTY Layer | 440 | 8 | 755 | 20 | 410 |
#2 | PPP / Modemeinwahl | 286 | 1 | 1318 | 28 | 22 |
#3 | Bootman: Unterstützung mehrerer Hds | 968 | 5 | 590 | 23 | 57 |
#4 | IRQ Routing | 663 | 25 | 472 | 4 | 462 |
#5a | Haiku Book, nur Unterschiede zu BeBook | 733 | 24 | 819 | 5 | 54 |
#5b | Haiku Book, vollständig | 233 | 1 | 1324 | 28 | 58 |
#6 | User Guide, vollständig | 561 | 17 | 1030 | 11 | 20 |
#7 | Standard Soundeffekte | 358 | 5 | 1226 | 23 | 32 |
#8 | WiFi, inkl. WPA/WPA2 | 1458 | 30 | 180 | 0 | 2 |
#9 | WiFi, GUI zur Konfiguration | 1378 | 28 | 248 | 2 | 24 |
#10 | Layout API, mind. Experimentell | 466 | 18 | 862 | 11 | 297 |
#11 | Alle Apps benutzen Layout API | 317 | 0 | 1003 | 28 | 296 |
#11a | Tracker_layout branch | 321 | 4 | 931 | 24 | 364 |
#12 | Alle Apps benutzen Locale API | 547 | 11 | 975 | 17 | 109 |
#13 | Netzwerkdateisysteme (ftp,ssh,nfs,smb) | 953 | 7 | 682 | 22 | 7 |
#14 | Debugger | 228 | 7 | 1255 | 21 | 148 |
#15 | Jamfile-Engine | 208 | 2 | 751 | 26 | 663 |
#16 | Stack&Tile Decorator als Standard | 346 | 2 | 979 | 26 | 309 |
#17 | Video mode setting Treiber (nvidia, ati, intel) | 1214 | 2 | 394 | 25 | 29 |
#18 | Multimonitor Unterstützung | 390 | 0 | 983 | 28 | 253 |
#19 | BWebView API | 355 | 0 | 997 | 27 | 269 |
#20 | Services Kit | 459 | 1 | 773 | 26 | 390 |
#21a | Web+, HTML5 Video und Audio | 749 | 11 | 866 | 17 | 21 |
#21b | Web+, User agent faking | 477 | 0 | 1027 | 27 | 119 |
#21c | Web+, SSL Zertifikat-Verwaltung | 880 | 18 | 649 | 8 | 100 |
#21d | Web+, Caching | 714 | 11 | 841 | 15 | 60 |
#21e | Web+, Passwort-Verwaltung | 576 | 10 | 1015 | 17 | 32 |
#22 | BNotification API | 425 | 2 | 779 | 26 | 413 |
#23 | Neue Treiberarchitektur fertigstellen | 901 | 11 | 576 | 15 | 150 |
#24 | Treiber an neue Architektur anpassen | 637 | 0 | 852 | 26 | 130 |
#25 | Neues Netzwerk Einstellungsfenster | 401 | 11 | 750 | 18 | 468 |
#26 | OSS und native Audiotreiber ko-existieren | 578 | 10 | 843 | 18 | 201 |
#27 | Alle Boot-Abbrüche beheben | 1276 | 19 | 316 | 9 | 31 |
#28 | Alle Video/Audiotreiber Bugs fixen | 1240 | 10 | 360 | 17 | 28 |
#29 | IPv6 Netzwerk-Unterstützung | 331 | 4 | 1273 | 24 | 22 |
#30 | Haiku System Upgrade Manager | 911 | 24 | 710 | 5 | 7 |
#31 | Paketmanagement | 978 | 14 | 642 | 15 | 9 |
#32 | Isochrone USB Übertragung | 637 | 6 | 687 | 21 | 305 |
Alles in allem werden die R1 Blocker von Entwicklern wie Usern recht ähnlich gesehen. Nur bei manchen Fragen gehen die Meinungen auseinander. Wie im oben verlinkten Mailinglist Thread zu lesen, könnte hier unter Umständen ein mangelndes Verständnis bei den Usern die Ursache sein, da es sich um ziemlich Hardware-nahe Features handelt, die ohne tieferes Hintergrundwissen vielleicht missverstanden wurden.
Doch auch innerhalb von Usern bzw. Entwicklern ist man sich noch nicht bei jedem Thema voll einig, siehe z.B. #21 Web+ bei den Usern oder #31 Paketmanager bei den Devs.
Hier sind wohl ein paar Diskussionen nötig; die Abstimmungsergebnisse sollte man also keinesfalls schon als festgeschriebene R1 Roadmap betrachten!
Humdinger,
11:50
- Labels:
Haiku
0
Kommentare
Sonntag, 12. Dezember 2010
Programming with Haiku, Lektion 2-15
Während die Gazette offline war, hat DarkWyrm weiter fleißig Lektionen zur Programmierung mit Haiku geschrieben. Das Erscheinen des 15. Teils bietet Anlass die verpassten Artikel zusammenzufassen.
#2: C++ Strings und noch mehr STL
Die 2. Lektion wirft als erstes einen Blick auf C++ Strings aus der Standardbibliothek und einige derer nützlichen Methoden wie beispielsweise find_first_not_of. Dann geht es weiter mit der Vorstellung weiterer STL Container (map, set, multimap, multiset) und Container Adapter (queue, priority_queue, stack), die die Art des Zugriffs auf den jeweiligen Container regeln. Anschließend werden die ganzen Methoden der verschiedenen Container beschrieben, mit denen deren Inhalte manipuliert werden können.Das ist eine ganze Menge Holz! Aber keine Sorge, wenn man das alles nicht aufs erste, zweite oder auch dritte Durcharbeiten verinnerlichen kann. Die Haiku API bietet mit BList und Trackers BObjectList Werkzeuge, die man fast immer als Alternativen zu Containern verwendenden kann. Ähnlich verhält es sich mit C++ Strings und Haikus BString. Im Grunde ist es einfach nur gut über diese Dinge Bescheid zu wissen, insbesondere wenn man es mit dem Code anderer Leute und portierten Quellen zu tun hat. Und natürlich, wenn man möglichst plattformunabhängigen Code schreiben will.
#3: Streams und Exceptions
Im 3. Teil werden zuerst die C++ Versionen der In/Output-Streams cout, cin und cerr vorgestellt. Dazu wird erst die C-Variante eines Programms gezeigt, das eine Datei auf die Konsole ausgibt, und danach die C++ Variante. Anschließend werden nützliche Methoden der In/Output-Streams wie get, getline, write und seekp besprochen und die Möglichkeiten der Fehlerauswertung.Weiter geht es mit der Ein/Ausgabe und deren Formattierung mittels cin und cout und deren Manipulatoren.
Auf Exceptions wird nur ganz kurz eingegangen; sie spielen in Haiku keine große Rolle, da die API sowieso schon eine gute Fehlerauswertung anbietet und Exceptions einiges an Performance kosten.
#4: Versionskontrolle
Lektion 4 legt eine kleine Pause ein was die Programmierung angeht und widmet sich einem Thema, das Hobbyprogrammierer oft vernachlässigen: den Segnungen der Versionskontrolle. Nutzt man sie, lassen sich Änderungen im Sourcecode leicht rückgängig machen oder verschiedene Lösungswege auf einfache Weise ausprobieren. Auch die Zusammenarbeit mit anderen wird sehr erleichtert.DarkWyrm stellt einige Systeme dafür kurz vor, CVS, SVN, Git, Mercurial, um dann praxisnah die Einrichtung anhand von Mercurial zu zeigen.
Seit kurzem kann übrigens auch die IDE Paladin mit diesen Versionskontroll-Systemen umgehen.
#5: Praxis - Paladin Projektdateien laden
Um das Gelernte der vorangegangenen Lektionen mit einem Praxisbeispiel zu vertiefen, zeigt die 5. Lektion all die vorgestellten Techniken, um Paladin Projektdateien einzulesen.#6-11: Rückblick auf den vorherigen "Kurs"
Die Teile 6 bis 11 werden später nachgereicht. Es werden leicht überarbeitete Kapitel aus dem ersten C++ Kurs "Learning to Program with Haiku".#12: Attribute
Mit Lektion 12 sind die allgemeinen C++ Themen abgeschlossen und es wird durchgestartet zur Haiku API. Den Anfang machen Attribute; wie man mit ihnen eigene Daten an Dateien hängt und wie man die systemweiten Attribute nutzt.#13: Queries
Nachdem beim letzten Mal die Arbeit mit Attributen gezeigt wurde, steht in Teil 13 die Suche nach ihnen mittels Queries auf dem Plan. Es wird die Syntax eines Query-Begriffs in Trackers Find Panel erklärt und wie man das programmiertechnisch umsetzt. Neben der Möglichkeit eines einfachen BString als Such-String, gibt es auch noch die etwas komplizierte Variante des Zusammenbauens mittels "Reverse Polish Notation (RPN)".Schließlich wird auch die besondere Spielart der Live-Query gezeigt, bei der man durch BMessages informiert wird, wenn sich die Trefferliste geändert hat, falls Dateien dazugekommen oder aus dem Suchmuster rausgefallen sind.
#14: Node-Monitoring
Mit der Überwachung von Dateien und Ordnern bzw. Benachrichtigungen beim Einhängen von Partitionen, zeigt Lektion 14 ein weiteres Kern-Feature von Haiku. Ähnlich wie bei Live-Queries wird man durch BMessages darüber informiert, ob sich in einem Ordner etwas getan hat oder eine Datei verändert wurde. Über welche Änderungen man informiert werden möchte, lässt sich dabei genau festlegen.#15: Eigene Dateitypen
Lektion 15 zeigt wie man aus seinem Programm heraus neue Dateitypen erzeugt. Neben einem eigenen MIME Typ lässt sich dabei unter anderem auch eine Dateiendung, Beschreibung und Icon vergeben und die Anwendung festlegen, die diese Datei standardmäßig öffnen soll. Etwas komplizierter wird es bei der Festlegung einer "Sniffer Rule": mit ihr können Dateien dieses Typs anhand immer gleicher Merkmale im Aufbau automatisch "erschnüffelt" werden.Zu guter letzt können einem Dateityp auch immer gleich systemweite Attribute angehängt werden, wie es z.B. mit AUDIO:artist, AUDIO:title und AUDIO:album bei MP3-Dateien der Fall ist.
Alle Teile von "Programming with Haiku" finden sich in DarkWyrm's Library.
Humdinger,
19:26
- Labels:
Programmierung
0
Kommentare
Donnerstag, 2. Dezember 2010
20. Thank You Award geht an Jérôme Duval
Jérôme "korli" Duval hat vor allem für seine Fortschritte bei der ext3-Unterstützung und Treiberverbesserungen den 20. Thank You Award gewonnen! Herzlichen Glückwunsch, auch an Scott, Philippe, Ithamar und Pengfei, die diesmal mit von der Partie waren.
Da die Thank-You-Award-Kasse mal wieder fast leer ist, sind kleine Spenden übrigens sehr willkommen.
Humdinger,
10:55
- Labels:
Thank You Award
0
Kommentare