
On behalf of the Haiku Support Association (HSA), we'd like to invite you to our 23rd BeGeistert meeting on the weekend of 23./24. of October 2010. It will be held as usual in the nice conference rooms of the youth hostel in Düsseldorf, Germany.
BeGeistert is an excellent opportunity to mingle with and learn from other users and developers from all over Europe (and beyond: this year we're happy to be joined by Rene Gollent, flying over from the US, and Christof Lutteroth and Clemens Zeidler from New Zealand!). Hear about other people's projects or present your own, meet many of Haiku's core developers and discuss the future of Haiku. Or present your favorite KDL and see if our gurus can successfully debug it...
Google Summer of Code 2010 is now over. It was a wonderful experience, and I learned a lot about Haiku’s internals, about file system development, and about myself. I successfully completed my proposal to a point an initial version of the Ext3 file system is available to the Haiku kernel for testing. There are some things that remain to be completed, like sparse files, proper revoke support, multi-transaction truncation and some more thorough testing, but overall, it was successful.
This weekend was my second year at the Ohio LinuxFest at the Greater Columbus Convention Center in downtown Columbus, OH. I arrived at the convention center at about 7:15am. Unlike last year, there was hardly anyone there outside of the OLF staff doing checkin and a few vendors. Joe Prostko was already there, having stayed at a hotel nearby the night before. It was good to see him again. We started talked for a bit and then started getting the table set up. I made sure that we had enough supplies for the table and each of us had brought a demo machine. Joe brought an MSI Wind netbook which was running a nightly build and I brought my Dell Latitude D620 running an almost-stock Alpha 2. Both machines proved to be valuable for demoing different aspects of Haiku that day. Soon enough we started seeing some traffic.
Since I started publishing my Learning to Program with Haiku lesson series back in January, I have, on many occasions, seen comments asking for lessons aimed at current codemonkeys who want to break into development for Haiku. Here begins a new series of programming lessons aimed at people who already have a basic grasp on C++: Programming with Haiku.
The direction of the series is pretty straightforward. First, we’ll be spending some time (i.e. the first unit) delving into some less-commonly-used features of C++ which show up in Haiku from time to time. This is partly to bring up to speed those who are picking up the series after finishing the first one, but also to examine ways that features like containers from the Standard Template Library can be effectively used in combination with the Haiku API. There’s even a quick primer on source control thrown in for good measure – something which any developer should at least understand, if not use religiously. Following the first unit we will dig into the API. Depending on how things work out, there may or may not also be a crash course on GUI programming in there before diving into the kits themselves. Some of the lessons will deal directly with getting to know a particular kit. Others will examine important topics or the “Haiku way” of getting a task done. They should provide a good working knowledge of Haiku development methods that can easily be expanded into more advanced usage.
It was a fine, sunny morning in Brisbane, Australia: home of the Third Annual Haiku Down Under Virtual Conference for Haiku Users and Developers. Virtual in the respect that the event was streamed live over the Internet via the uStream service. We accept (and regret) that this service requires Flash, so you can’t use Haiku to view this event, you must use another OS like Windows, Mac or Linux.
This year, HDU (short for Haiku Down Under; not slang for How Dare yoU) were able to book a conference venue at The University of Queensland with projector, white board and limited seating where myself, Sikosis was joined by BeMark and Mojodale.
The coding period of the Google Summer of Code is now over since this Monday,
and it's time to give to the Haiku Community a debrief of what has been done on
my initial project, what has been modified, and what remains to do.
The fundamental parts of the journal code are finished. Although they still need more testing, and they can change as more of the Ext3 code is written, they are ready for supporting the first steps in write support for ext2 and ext3 volumes. This blog post explains the code, and how it is organized to handle ext2 and ext3 volumes.
Over the next few weeks, I'll be trying to document some tangible non-C/C++ tasks.
They'll usually be things that I've wanted to do or have been meaning to do, but
for whatever reason haven't gotten around to doing them.
For each task, there'll a description of what it is,
how it helps the project, and hopefully some information to help you get started.
First of all, thank a lot for your generous donations! It was really stunning to see how much money could be raised in such a short time. And since it’s been some time since my last commit, I thought it would be a good idea to report what I’m currently up to. But first, let’s have a look at what I did last week for the most part:
- I started to fix some annoying bugs in the FreeBSD compatibility layer. Now it's possible to unload the networking stack completely again, and the "callout" implementation should provide more accurate timing. Oh, and booting over the network didn't work either anymore with FreeBSD drivers. Originally, I wanted to find out why Haiku would instantly reboot on one of my machines, but the problem mysteriously vanished once I started looking into it.
- Next on the list were some minor bugs, mostly having to do with routing, some could crash the system, others would just render your network unaccessible. Most of those bugs were reported by Atis Elsts, one of our current GSoC students that works on implementing IPv6. I've recently committed his work in progress to our repository in order to ease reviewing his patches, and give what he has done so far a bit more exposure.
- Then I started to integrate the ICMP patches that two former students (Ivo Vachkov GSoC 2007, and Yin Qiu HCD 2008) produced by pretty much rewriting it. Looking back, it was not well spent money: neither student joined the project, nor was the quality of their work really acceptable. It took me 3 days to rework it, and it still has some issues like introducing an IPv4 specific error mechanism to the protocol agnostic stack. I doubt it would have taken much more time to write it from scratch. I will continue to work on this later, though, and address its remaining shortcomings. The current state is that we can produce ICMP error messages (and will in most appropriate places), and also forward those errors to userland applications. For example, if you send a UDP packet (through a connected socket) to a port that is not served, the server will answer with an ICMP port unreachable error (even if that server would be Haiku), and your application would retrieve the appropriate error code from its next socket interaction.
Since the last three days, I'm working on changing some stack internals that caused a bit more work than I originally anticipated: the network stack that is currently in Haiku only allows a single address per interface. This is something that was quite okay with IPv4, but starts to be problematic with the adoption of IPv6, since it's common there for an interface to have more than a single address (this feature is also requested by the RFCs that cover it). Originally, I had thought that simple aliasing of interfaces would do it (the plan was that several interfaces could use the same driver, but had different names that would only be joined for displaying them through ipconfig), but even though other systems seem to actually do that, it's quite a limited approach. Besides, the network stack support for this was utterly broken. That's probably what you get when you don't consider a feature important.
So, I’m still working on the locale kit. Here are some things I did since last time :