We’re starting to get closer to the end of this Learning to Program series. After toying with menus and interface colors in the last lesson, we apply some of the concepts used with menus to get the hang of using list boxes and discover along the way a few bizarre sports that really exist. Games people play. Sheesh.
Learning to Program With Haiku Lesson 18 Sources: 18ListTitle.zip
After an unintended wait, Lesson 17 is finally out. We are back to learning about hacking on the Haiku GUI after taking a short C++ language break. Today’s topic? Menus. Also in this lesson is some expansion of what we know about messaging and BViews.
Learning to Program With Haiku, Lesson 17 Project: 17MenuColors.zip
As an operating system with a short boot time and a small footprint, Haiku is looking very interesting for the general public.
With WebPositive well on it’s way to becomming a great browser, users will want a great media experience to go with it.
I propose to work on Media Player and the Media Kit, in order to improve it with new functionalities: DVD playback, streaming support, tray icon controls…
Haiku is currently missing a subsystem allowing application to be connected to Web 2.0, although this is becoming important relatively to the interaction between users and "the world" through the Internet. The development of the Services Kit would permits to Haiku applications to access various web services, such as micro-blogging (twitter, ...), pasting services (pastebin, pastie, ...), social networks (last.fm, ...).
With the exhaustion of IPv4 addresses that is expected to happen soon, the next Internet protocol version IPv6 has become more important than ever. All major desktop operating systems (Windows, Mac OS, Linux) already have IPv6 support. The main objective of this Summer of Code project is to create an IPv6 implementation in Haiku kernel. This work will allow user-space application developers to add IPv6 support to their programs, and Haiku users to have IPv6 connectivity to the Internet or other networks.
The full proposal follows.
Currently Haiku is stuck in the 32bit world. This is fine for the initial BeOS R5 compatible release, but this is extremely limiting for future releases. It's a reasonable goal for Haiku to have a mature 64bit x86 port by the time the R2 release comes out. However ports don't become mature overnight. If full time work is put into porting haiku to the x86_64 platform this summer it'll be feasible to finish the port in a reasonable time to have it throughly tested and ready for the R2 release.
My project for the GSoC is to start the Haiku x86_64 port by completely porting the kernel and modifying the bootloader to load a x86_64 haiku kernel.
Project Outline
My GSoC project revolves around polishing and preparing Haiku's Layout API for public consumption. Currently, this is only supposed to be used in Haiku's included applications, so third party applications must manually position and resize all their GUI elements, which can be really tedious and inflexible. I will also be modifying some Haiku-provided applications to use the Layout API, which will help me find bugs and help with Haiku's ongoing localization.
Haiku currently has ext2 read-only support. My project is to extend the code to allow for full ext3 support. The code will be MIT licensed and will be object-oriented (inspired by Haiku’s BFS implementation), allowing for easy understanding, learning and maintainability.
The full Google Summer of Code application follows:
Haiku has great support for its own file system, but most others are only available read-only or not accessible. Providing reliable read-write support to one such file system is a complex task, and needs to be repeated for each type of file system.
Linux contains state of the art, full featured implementations for a large number of file systems.
lkl-haiku-fsd is a generic driver based on the Linux kernel library (LKL), reusing Linux' optimized and debugged file system implementations.
It’s strange how a week goes by so quickly now, but it’s good motivation to keep writing! This lesson takes a break from hacking the Haiku API to learn a few C++ language concepts needed to continue progress as an aspiring developer. Function overloading and operator overloading are examined in detail. Enjoy! Learning to Program With Haiku, Lesson 16.