C++ Kurs, Lektion 4

Im 4. Teil von DarkWyrms C++ Kurs geht es um die Verwendung von for-Schleifen und if-else Bedingungen, und die logische Verknüpfung von Ausdrücken mittels AND, OR und NOT. Die Konzepte werden mit einem kleinen Programm zur Kreditrechnung verdeutlicht.
Zum Schluss gibt es wieder eine Bugjagd und die Auflösungen der Lektion 3.

Haiku auf der FOSDEM X

Am Wochenende, 6./7. Februar 2010, findet in Brüssel zum 10. Mal das große Opensource Treffen FOSDEM statt. Haiku wird zwar auch diesmal vertreten sein, allerdings nicht mit einem eigenen Stand (bzw. wie beim letzten Mal zusammen mit den ReactOS Jungs). Dafür wird es am Sonntag diverse Vorträge im Alt-OS Devroom geben.
Der Alt-OS Devroom entstand aus der Idee heraus, dass die unterschiedlichen Betriebssysteme so zusammenarbeiten und gemeinsamen Code und Strategien entwickeln können. Beim letzten Google Summer of Code Mentor Summit wurde dazu das Rosetta OS Project gegründet, das auch die Organisation des Alt-OS Devrooms übernahm.

Neben François Revol werden auch Olivier Coursière, Alexandre Deckner und Niels Reedijk die Haiku Fahne auf dieser FOSDEM hochhalten. François scheint dabei einen besonders vollen Terminplan zu haben...

15. Thank You Award für Colin Günther

Der 15. Thank You Award geht an Colin Günther für seine kontinuierliche Arbeit an Haikus WLAN Stack. Herzlichen Glückwunsch, Colin, und vielen Dank auch an alle anderen Kandidaten, die diesmal leer ausgingen.
An dieser Stelle sei auch noch mal auf die WLAN Verschlüsselungs-Bounty hingewiesen, die helfen könnte dieses wichtige Feature für den Alltagseinsatz schneller zu verwirklichen.

UPDATE:
...und jetzt ist auch schon das Mini-Interview mit Colin online:

  1. Wie alt bist Du und womit verdienst Du Dein Geld?
    Ich bin 27 und habe eine super Familie, die mich unterstützt damit ich mich voll aufs Studium konzentrieren kann.

  2. In der Nominierung heißt es, Du hättest Haiku Wifi-Unterstützung gebracht. Wie schwer (oder einfach) war das?
    Schwer, würde ich sagen. Um den FreeBSD Wifi Stack zu portieren, musste ich mehrere Systeme wirklich verstehen. Wie das FreeBSD Netzwerk Subsystem funktioniert und wie Haikus vorhandene Kompatibilätsschicht das Verhalten seines Vorbilds emuliert. Außerdem musste ich die Funktionsweise des FreeBSD Wifi Stacks verstehen und wie dieser mit seinem Subsystem zusammenspielt. Und natürlich musste ich mir Haikus Netzwerk Subsystem ebenfalls einverleiben.
    Und schließlich waren da auch noch die 1000 Seiten des IEEE Std 802.11 Dokuments, in dem ich mich zurecht finden musste, um die benötigten Informationen zu finden. Sprich, ich musste es von vorn bis hinten durchlesen.

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.

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.

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

  • Travis Reed - Für sein online Übersetzungs-Tool

  • 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

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.

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.

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.

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.

Inhalt abgleichen