Hi guys.
Sorry for no update in the previous weeks.
I’v made some progress. mDNSResponder, which provides the underlying ZeroConf functionalities, has been ported to Haiku. It runs on Haiku correctly. In order to make it run, minor updates in our network stack were also applied.
I’m currently working on the service browser. It is almost finished. I’m also trying to write some wrapper classes so developers who need ZeroConf features can easily use them.
After much effort from my GSoC student Maxime Simon and plenty of gentle coaxing from WebKit reviewers, I’m proud to announce that the various patches to add support for Haiku as a platform in WebKit are now being committed!
Maxime took my code from the original Haiku port I made in 2007 and updated it for the latest WebKit, which changes a lot daily, so you can imagine the state of the port after a few years! Still it was good to see that my previous effort was not to be wasted and it did not take Maxime long to start posting bugs and patches at the WebKit Bugzilla site.
This is a sample of the CSS styles taken from the extraordinary work done by Humdinger on the Haiku User Guide. I am showcasing these here because I would like to use them throughout haiku-os.org as well. If it turns out that there is no unsurmountable opposition to adopting these classes, I will eventually document them so that they can be used by those submitting news, blogs posts and documents to haiku-os.org.
Boxes
This is just a very unthreatening little note. Don't be upset.
This may have serious consequences. Don't mess this up.
By golly, you better be sure what you're doing! Danger, Will Robinson!
This week I was at the RMLL in Nantes, and I was busy showing Haiku to other people and explaining them why it was so much better than linux. I had little time for GSoC coding.
Still, I made some cleanup and fixed some small bugs. The catalog part of the locale kit is now working fine and can be used to internationalize applications.
Here is a small guide for those who want to get an application speaking in their own language.
Sourcecode changes
You have to alter your source code to get it working. We've tried to make this need as little changes as possible. First, you have to #include two files : Catalog.h and Locale.h. They are system headers from the locale kit. Now you have to tell the locale kit to initialize a catalog for you. A catalog is a class that you will use to map strings to their translated equivalents. The locale kit will automatically find the right data files for you, depending on the system-wide language preferences, you application mime signature, and some other magic (see the part of this post about the build system changes). So, you only have to add two lines of code:
BCatalog cat;
be_locale->GetAppCatalog(&cat);
The next step towards the finishline (described by the WiFi-bounty on haikuware, Technical Information tab), will be the design of a native Haiku WiFi-stack.The picture below shows a coarse view of how the stack will fit into the networking system. WiFi stack - coarse design overview As you can see there are two distinguished areas, one is colored green the other blue. Green shows already existing infrastructure, blue shows the infrastructure I'm going to provide.
Screenshot of working WiFi prototype
Today I fiddled out the last hurdle on getting my WiFi-card up and running. It only connects to unprotected open wireless LANs, because there is no configuring mechanism implemented yet. Though it is far away from completeness.
On the screenshot, you see Firefox surfing www.haiku-os.org and downloading a 100 MiB file from my ftp server in parallel. The terminal is showing the result of the ifconfig command for my WiFi-card.
I managed to port the FreeBSD WiFi-stack, utilizing Haiku's FreeBSD compatibility layer. Thus I could use the WiFi-card driver for my atheros chipset from FreeBSD without any major changes to its codebase (I had to move some interrupt handler code into driver-specific glue code).
The driver-binary has a size of 500 KiB, due to compiling the WiFi-stack into a static library and statically linking it and the FreeBSD compat layer with the driver. Update: The sources are up in the haiku-wifi repository on www.osdrawer.net (read "For the bravery" down the line for more info on how to get it).
This week i’ve been working on a big red post-it that was on last week’s picture. It was about wo things : make the catalog handling tools work as build tools, and test them in some special cases.
The first part took me almost the whole week. I started doing a full port of the locale kit, but noticed it would probably be too complex to do that. Instead, I started over with a simpler solution.
The journey so far.
I have implemented basic file system interface functionality including mount and unmount, and can load it directly as a kernel addon and via userlandfs. At present the client expects just the server ip address and the share name in the format :. I have begun implementing protocol negotiation, and hope to complete the setup of a session using LANMAN in the next few days. I had hoped to have begun implementing file actions by now but unfortunately I’m quite a way from that.
After more than a week of thinking, "Today is the day I'll write that blog post", here I am with a status update on my HCD2009 project. I have only a few more points to add to what Matt has already posted here.
First of all, the previously unnamed full text indexing and search tool now has a name: Beacon. The indexing daemon currently in the works is called beacond.
almost-UML diagram of the locale kit
This week, I finally got the plaintext catalog add on working. Then today, Oliver reviewed my work and we had a meeting on IRC. We agreed on some changes to the internal architecture of the locale kit, and also to the classes I added. Some classes in this kit have unappropriate names, and the kit was designed with zeta compatibility in mind, whereas in today’s Be-World it seems more important to focus on gettext.