Urias at the Dell booth during OpenSource World.
It's been about a month since Urias, Scott and myself represented Haiku at the O'Reilly OSCON 2009 conference in San Jose, and approximately two weeks since we exhibited at the OpenSource World 2009 conference in San Francisco. I think this is the first time that we exhibit at not one but two events in a row, and we don't write any reports; and that is a real shame. So here I am, after some very serious procrastination, finally attempting to give a recount of both events in a single blog post. Like we say in Argentina, better late than never... :)
OSCON 2009: Way Beyond Expectations
OSCON is an open source event organized by O'Reilly, a well-known company whose core business is to foster technological innovation by publishing books, holding conferences and providing online services. I had never been to OSCON before, so I did do some reading about it prior to applying for a booth earlier this year; beyond all the usual stuff (history, demographics, etc.) that I could find on their websites, what caught my eye was a statement about this year's OSCON, which I quote: "If the first ten years of OSCON were about opening the minds of big business to the philosophy of open source, are the next ten years about opening the minds of the open source community to the possibilities of its future?". Quite interesting articulation indeed, I thought, and one that raised my expectations for the event to a motivational level. I can say now that, luckily, those expectations were not only met, but even surpassed: OSCON 2009 was a real blast, the kind that you don't ever want to miss again.
On Sunday 23rd August at 9:00AM, the Australian Haiku Developers and Users (Virtual) Conference - Haiku Down Under kicked off for the 2nd year in a row.
Unforunately, the lack of support from the Australian users and developers meant I had to come up with the content, as well as run the event. This isn't what I was originally intending to do. I would have preferred to be the MC / Organizer of the event.
Anyway, with this in mind, the crown jewel of content I had was a special 50 minute Haiku Podcast episode featuring myself, TheNerd, Urias McCullough and Matt Madia. I was actually still editing this podcast at 2AM :(
Technical difficulties plagued the entire event. From IE browser plugin issues with uStream, presentation slides being cut off, the strange echo and last but not least the uStream stream dying half way through the event. In other words, the streaming was an utter steaming pile of fail.
After quite some time I finally update my blog ;). A lot has happened in the last few weeks... The Haiku loader that gets loaded by u-boot finally is able to load the kernel and start it and we even have minimal framebuffer support running.
haiku_loader
In the previous posts I said that we would use the U-Boot API to write the loader, the problem with that is, that the API is not accessible on most U-Boots so we could not use it on early boot and had to write our own functions for serial output etc. Because of that the kernel is now loaded from a ramdisk instead of directly loading it from the sd-card as planned (but that might change later...). It also has the disadvantage, that the loader code is not completely platform independent anymore so we would have to rewrite it to be used on a PPC board with U-Boot for example.
Since we still need to know where to find the ramdisk for example (unless we hardcode it..) we decided to use the U-Boot image format that allows packing the loader and the ramdisk in one image and tell the loader where everything is and what parameters to pass to the kernel etc.. For this task U-Boot has OS-specific code since there is no standardized way of doing this. Since there was no Haiku specific code we would either have to convince the U-Boot developers to add Haiku support or simply masquerade as an other operating system. We choose the second option and François Revol added support for the netbsd way of booting so that we get the position of the ramdisk and the kernel parameters and some other info that is not yet used. He also created an jamtarget to allow to build an image directly.
Aloha Haiku Land!
I have been putting the finishing touches on support for Extended Partitions today. For those of you who do not know the Master Boot Record or an MBR can only contain 4 primary partitions. This leaves something to be desired when you want to run a bunch of operating systems or split your install across multiple partitions. There is a way however to get as many partitions as you want however by creating what is called an Extended Partition.
We want news!
… or at least I suppose that some people want to know the progresses made on the WebKit port.
I think that we can split this work in two parts:
- Improvements made on the port.
- Landing in the official WebKit tree.
Ryan and I thought that the first part would have been a bit easier, but in fact since the previous port (by himself), many code in WebKit has changed. It is still a work-in-progress but I made some good advances.
As for the second part, it is also something that we are still working on. I can say that it is in great shape to be complete before the end of summer. ( The summer ends on the 21th of September… ;)
The end of GSoC is in less than two weeks now, so it's time to clean things up and get what I started working. I spent the previous week reading ICU documentation to understand how it worked, and this week I used this information to build the locale preflet.
This is not as simple as it looks. First, I had no experience of programming with the Interface kit so I had to learn how things worked.
After I didn't write the promised report on the last Coding Sprint which took place after BeGeistert in April, I am now trying not build up an even bigger lag. Last week, Axel and his girlfriend Claudia hosted Michael, Ingo and myself at their nice home in Hannover, Germany. Oliver could sadly not attend our small, relatively spontaneous and informal Coding Sprint due to sickness, although he seemed to be with us in spirit considering all his ICU commits. (The ICU libraries are an important foundation of the forthcomming Haiku Locale Kit.)
So far, I have been working on the indexing part of Beacon, which is nearly complete. In the coming weeks, I will be running beacond (now index_server) as a service in the background so that I can find and squash whatever bugs remain in the code. For now, index_server is blazing fast, but that might be because the indexes I test against are just a few megabytes in size. From what I hear, though, CLucene can easily handle indexes which are several gigabytes in size without blinking an eye, so speed might not be an issue as the indexes grow.
Locale Kit Interfacing with ICU
This week two important things happened for my GSoC project: I got commit access to Haiku and I finished working on the catalog part. This mean I can now work more efficiently without having to send my patches trough the GSoC mailing list (you may have noticed I still need my code to be reviewed, however :/).
The catalogs allow strings in an application to be translated. At a first glance you may think this is the only needed thing in a Locale Kit and my work is finished, but it is not the case. The first missing part is the preflet allowing you to select your favorite language. The locale kit will now always try French, if not found default to German, then finally to English. I think this is not the setup most of you want to use.
DriveSetup with extended partitions I few days ago a patch went into the tree that cleaned up most of the remaining issues with creating primary partitions. So I started working on getting extended partition support in DriveSetup. This has been an interesting task as the extended partition support is not nearly as complete as primary partition support. To make a long story short, I have been able to create an extended partition and logical partitions within.