Samstag, 30. Januar 2010

VLC 1.0.4 läuft

Mizsei Zoltán (miqlas) ist es gelungen den VLC Media Player auf Haiku lauffähig zu bekommen. Er verwendet dazu SDL Output und eine Qt Oberfläche. Zum Beweis zeigt Miszei diverse Screenshots. Auch ein Portlog ist vorhanden, das sein Vorgehen zeigt.

Hier eine Liste aller funktionierenden VLC Module:
a52tofloat32, a52tospdif, access_mmap, adjust, alphamask, aout_file, aout_sdl, audio_format, audioscrobbler, avcodec, avformat, bandlimited_resampler, blend, blendbench, bluescreen, canvas, chain, clone, cmml, colorthres, converter_float, crop, croppadd, deinterlace, dolby_surround_decoder, dtstospdif, dvdnav, dvdread, dynamicoverlay, equalizer, erase, extract, fake, float32_mixer, folder, freetype, gaussianblur, gestures, gradient, grain, headphone_channel_mixer, hotkeys, http, i420_rgb_mmx, i420_ymga, i420_ymga_mmx, i420_yuy2, i420_yuy2_mmx, i422_i420, i422_yuy2, i422_yuy2_mmx, invert, libmpeg2, linear_resampler, logo, magnify, marq, memcpy3dn, memcpymmx, memcpymmxext, mod, mosaic, motion, motionblur, motiondetect, mpgatofixed32, mux_ogg, noise, normvol, ogg, opengl, opengl, osd_parser, osdmenu, param_eq, png, podcast, psychedelic, puzzle, qt4, rc, remoteosd, ripple, rotate, rss, rv32, sap, scale, scaletempo, scene, screensaver, sdl_image, sharpen, shout, showintf, signals, simple_channel_mixer, skins2, spatializer, spdif_mixer, speex, stream_out_raop, taglib, telnet, telx, transform, unzip, visual, vmem, vorbis, vout_sdl, wall, wave, xml, yuv, yuvp, yuy2_i420, yuy2_i422, zip

Monster-VLC! Mal sehen wann wir ein entsprechendes VLC-Paket bei Haikuware sehen.

C++ Kurs, Lektion 3

Der 3. Teil von DarkWyrms C++ Kurs ist erschienen. Er zeigt die Verwendung von Variablen, ihre unterschiedlichen Datentypen und wie man das alles durch verschiedene Operatoren in Funktionen nutzen kann. Dazu werden die Möglichkeiten der Ausgabe mittels printf() vorgestellt, bevor die Lektion mit einer weiteren kleinen Bugjagd und einer Hausaufgabe zur Zinsberechnung endet.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

Mittwoch, 27. Januar 2010

15. Thank You Award

Die Wahl für den 15. Thank You Award steht in Kürze an. Wer noch einen würdigen Kandidaten nominieren will, muss sich beeilen! Vorschläge können als Kommentar in der TYA Ankündigung bei Haikuware hinterlassen werden.

Update:
Die Kandidaten stehen nun fest. Es darf gewählt werden:

  • Grzegorz Dabrowski "kaliber" - Für die Portierung der ganzen KDE Anwendungen, insbesondere KOffice
  • Colin Günther - Für seine kontinuierliche Arbeit am WiFi Stack
  • Jerome Duval - Für seine kontinuierliche Arbeit an Audio Treibern u.v.a.m.
  • Stefano Ceccherini - Für seine Arbeit am Terminal, BMenu etc.
  • Niels Reedijk - Für seine administrative Tätigkeit und sein Engagement für die API Dokumentation
  • Adrien Destugues - Für seine kontinuierliche Arbeit am Locale Kit
  • Alexandre Deckner - Für seine Arbeit an Tracker
  • Oliver Tappe - Für seine Arbeit als System Administrator der ganzen Server

Montag, 25. Januar 2010

C++ Kurs, Lektion 2

DarkWyrm hat die zweite Lektion seines Programmierkurses veröffentlicht. Diesmal wird in Kürze erklärt, wie mittels Preprocessor, Compiler, Assembler und Linker aus dem Sourcecode ein ausführbares Programm erzeugt wird. Da auch in Zukunft anhand der Beispielprogramme das auch immer nötige Debuggen gezeigt werden soll, präsentiert DarkWyrm schon mal die ersten paar kryptischen Fehlermeldungen und ihre Bedeutung.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

Mittwoch, 20. Januar 2010

Programmieren lernen unter Haiku

Haiku Entwickler DarkWyrm legt zwar momentan eine kleine Schaffenspause ein was das Programmieren angeht, beschäftigt sich jedoch weiter indirekt mit Haiku. Um anderen den Einstieg in die C++ Programmierung unter Haiku zu erleichtern, möchte er etwa wöchentlich eine Lektion als PDF veröffentlichen. Ihm und allen Programmieranfängern dürfte dabei zugute kommen, dass er seit über 10 Jahren als Lehrer unterrichtet und ihm daher das Vermitteln von Wissen nicht neu ist.

Die erste Folge ist gerade erschienen und erklärt die absoluten C++ Grundlagen, wie Aufbau von Funktionen, Aufruf des Kompilers und, natürlich, ein erstes HelloWorld im Terminal. Dies ist eine erstklassige Gelegenheit für alle Noch-Nicht-Programmierer, die man nicht verstreichen lassen sollte! Durch Fragen und Feedback lassen sich die Lektionen aktiv beeinflussen und sonst vielleicht nur angeschnittene Themen vertiefen. Viel besser als irgendwann nur passiv alle Lektionen durchzukauen.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

OptionalPackages einfach nachinstallieren

Wer sich sein Haiku nicht selbst direkt aus dem Sourcecode baut und statt dessen auf die praktischen Nightly Builds zurückgreift, hat ein kleines Problem. Im Gegensatz zur Haiku Alpha Release ist Haiku in diesen Test-Revisionen im spartanischen Rohzustand, d.h. keinerlei Zusatzsoftware für die tägliche Arbeit.
Das heißt, es fehlt auch der BeZillaBrowser, ohne den das Suchen und Runterladen von Software nur sehr schwer möglich ist. Mit dem kürzlich von Matt Madia fertiggestellten Skript installoptionalpackage kann BeZilla und alle anderen Pakete aber kinderleicht nachinstalliert werden.
Der Parameter "-l" listet alle verfügbaren Pakete, "-a" installiert das entsprechende Paket und evtl. Abhängigkeiten unter Berücksichtigung der verwendeten Haiku Revision und Kompilerversion. Das Skript steht in allen aktuellen Images zur Verfügung, ist aber nur eine Zwischenlösung, bis der offizielle Paketmanager fertig ist.

Dienstag, 19. Januar 2010

WLAN Status

Wie läufts mit der Entwicklung des WLAN Stacks?
Ausgesprochen gut, wie Colin Günthers Report verrät. Die im Rahmen der Haikuware Code Bounty geplanten drei Entwicklungsphasen des WLAN Stacks sind praktisch abgeschlossen. Der FreeBSD Stack wurde erfolgreich portiert, ein kleines Tool zur Konfiguration geschrieben und alle FreeBSD 8 WLAN Treiber lassen sich unter Haiku kompilieren. Nicht nur das, die Treiber lassen sich nicht nur fehlerfrei erzeugen, sie funktionieren auch! Folgende Chipsätze werden so unterstützt:

  • aironetwifi unterstützt zumindest:
    • Cisco Aironet 350 Serie
    • Aironet PCI4500
    • Aironet PCI4800
  • atheroswifi unterstützt so ziemlich alle Chipsätze außer AR9285
  • broadcom43xx
  • BCM4301, BCM4306, BCM4307, BCM4309, BCM4311, BCM4312 and BCM4318
  • iprowifi2100
  • iprowifi2200
  • 2200BG
  • 2225BG
  • 2915ABG
  • iprowifi3945
  • iprowifi4965
  • marvell88w8335
  • Marvell Libertas 88W8310
  • Marvell Libertas 88W8335
  • marvell88w8363
  • ralinkwifi
  • RT2560
  • RT2561S
  • RT2561
  • RT2661
  • wavelanwifi unterstützt zumindest:
    • 3Com Airconnect
    • GLPRISM2 WaveLAN
    • Intersil Prism3
    • Intersil Prism2.5
    • Linksys WDT11
    • Netgear MA301
    • PRISM2STA WaveLAN
    • Siemens SpeedStream
    • SMC 2602W
    • Us Robotics 2415
    • Addtron AWA-100 PCI
Einzige Einschränkung: Es werden nur PCI basierte Geräte unterstützt, also PCI, miniPCI, PCI-Express, miniPci-Express und PCI-X. PCMCIA, CardBus, ExpressCard, USB oder ISA Geräte funktionieren nicht.
Für einige Chipsätze muss die Firmware extra eingeladen werden. An sich unproblematisch, wären da nicht unterschiedliche Lizenzbedingungen der Hersteller zu beachten. So dürfen einige nicht zusammen mit dem Treiber verteilt werden, sondern müssen explizit heruntergeladen werden, und das erst nach erfolgtem Wegklicken, äh, "Akzeptieren" der Lizenzbedingungen.
Um das zu erleichtern, wurde von Matt Madia ein Skript entwickelt, das einem die Arbeit abnimmt. Es liegt den neuesten Images im SVN Repository als install-wifi-firmwares.sh bei und sollte zur Unterstützung von broadcom43xx, marvell88w8335, ipw2100 und iprowifi2200 ausgeführt werden. Wer das Ganze ausprobieren will, besorgt sich einen aktuellen SVN Stand (z.B. als Nightly Image) und führt ggf. das erwähnte Skript aus.

Update:
Colin hat mich darauf hingewiesen, dass die WLAN Geschichte eben noch nicht in den Nightly Images enthalten ist. Dazu fehlen noch die entsprechenden Copyright-Hinweise im "AboutSystem" und vor allem entsprechende "Jam rules" für den Bau von den Images. An letzteren arbeitet bereits Matt Madia. Alle nötigen Firmwares, Treiber und Tools befinden sich allerdings im SVN und können mit einer entsprechenden UserBuildConfig zu einem Image gepackt werden, wenn man sein Haiku selbst aus dem Sourcecode kompiliert. Verkabeltes LAN und das neue WLAN sollten in den Network Preferences auf "DHCP" gestellt werden.
Die Verhandlungen zwischen Haiku und dem Router können sich etwas ziehen, man sollte sich also zumindest eine Minute gedulden können.
Außerdem wichtig: Die Verschlüsselung und evtl. MAC-Adressen-Filter sind im Router auszuschalten.
Hat die Verbindung geklappt, kann man die entsprechende MAC-Adresse freischalten und das MAC-Filtern wieder einschalten, um zumindest ein Minimum an Sicherheit zu haben. Verschlüsselung ist der nächste große Meilenstein für den WLAN Stack. Colin selbst wird dazu wohl erst später im Jahr die Zeit finden, da er sich auf seinen Uni-Abschluss und anschließend um einen Job kümmern muss.
Es läuft allerdings bereits eine Sammelaktion für eine Code Bounty zur WLAN Verschlüsselung, die natürlich auch von anderen Entwicklern übernommen werden kann.

Montag, 18. Januar 2010

KDE Software unter Haiku

Dank des fortgeschrittenen Qt4 Ports sind mittlerweile viele KDE Anwendungen unter Haiku lauffähig. Grzegorz "kaliber" Dabrowski, Entwickler des Box Paketsystems "TiltOS for Haiku" mit Plänen für ein verwirrend gleichnamiges Haiku-basiertes Betriebssystem TiltOS, hat fleißig portiert und kann mit etwa 150 KDE Programmen aufwarten von denen angeblich nur ca. 10% noch Probleme bereiten. Eines der KDE Highlights dürfte KOffice sein, das die Textverarbeitungslücke unter Haiku fürs erste schließen dürfte.
Auf seiner Webseite gibt kaliber ein Beispiel wie ein KDE Paket installiert und ausgeführt wird. Voraussetzung ist ein gcc4 oder hybrid Haiku, der Paketmanager TiltOS for Haiku und ordentlich Platz auf der Platte. Es handelt sich ja nicht um elegant kleine Haiku Anwendungen, sondern um doch eher sperrige Portierungen. Hier das Beispiel, bei dem "kdegames" installiert wird:

### Download des Paketindex
$ box --sync-repos
   ### Installation der KDE Basispakete
$ box -i dbus
$ box -i desktop-file-utils
$ box -i shared-mime-info
$ box -i oxygen-icons
   ### Installation von kdegames
$ box -i kdegames --no-deps

Um eine KDE Anwendung auszuführen, wird zuerst eine dbus Session gestartet:
$ eval `dbus-launch --auto-syntax`
Und dann z. B. das Spiel "klines":
$ klines
Jetzt dürfte sich langsam zeigen, ob Qt für Haiku zum Segen oder Fluch wird.

Dienstag, 12. Januar 2010

Free Pascal für Haiku

Mit der neuen Version 2.4.0 gibt es von Free Pascal erstmals ein offizielles Haiku Paket. Darin enthalten ist der Kompiler, viele Bibliotheken und eine Kommandozeilen-IDE inklusive Mausunterstützung und Debugging-Möglichkeiten. Olivier Coursiere engagiert sich besonders für Free Pascal und Haiku. Sein großes Ziel ist die direkte Anbindung von Pascal an die Haiku API. Das wird allerdings noch länger auf sich warten lassen. Bis dahin beschäftigt er sich mit einer Delphi ähnlichen IDE. Möglich machen soll dies Lazarus und der Haiku Qt Port. Ein Screenshot zeigt den momentanen – leider noch nicht ganz produktiv nutzbaren – Stand.

Dienstag, 5. Januar 2010

News Update

  • Seit über 2 Jahren lässt sich Haikus PPC Kernel wieder booten. Nach einigen Patches von Andreas Färber fährt er über Netzwerk gestartet auf echter PPC Hardware hoch, wo er dann recht bald in den Debugger stürzt. Aber immerhin. Alexander von Gluck hat auf seiner Haiku-PowerPC Seite alle nötigen Schritte dazu dokumentiert.
  • Ingo Weinhold hat fleißig an diversen Flaschenhälsen vor allem im VM und Filesystem rumoptimiert und konnte so z.B. das Erstellen von Haiku Images beschleunigen. Ohne genaue Messungen berichtet Rene Gollent von Steigerungen zwischen 25-40%. Die Optimierungen wirken hauptsächlich bei Systemen mit vielen CPUs/Cores.
  • Für alle, die schon immer mal ein Tutorial für BeSly schreiben wollten, gibt es jetzt ein kleines Tool, das dabei hilft.
  • Und noch ein Tool, diesmal online: Travis Reed hat ein PHP-basiertes Tool entwickelt, das die zur Lokalisierung von Haiku verwendeten "catkeys" direkt aus Haikus SVN Repository zieht und nach erfolgter Übersetzung eine entsprechende catkey Datei generiert.
  • Für den Qt4 Port gibt es ein Update, das die Stabilität soweit verbessert haben soll, dass sich nun die meisten Qt Programme kompilieren und nutzen lassen. Voraussetzung ist ein aktuelles Haiku gcc4 oder hybrid Image. (Der Arora Browser ist übrigens schon um einiges flotter als der BeZilla, aber in meiner Erfahrung um Längen weniger stabil.).
  • Andrew Bachmann macht kleine Fortschritte bei der Portierung von OpenJDK. In seinem Blog beschreibt er, wie man OpenJDKs Hotspot libjvm.so baut. Java Programme lassen sich damit zwar noch nicht ausführen, aber vielleicht ebnet das den Weg für weitere interessierte Entwickler sich am Java Port zu beteiligen.