Some of you may know that for quite some time, on and off, I am working on a rewrite of WonderBrush, the graphics tool that comes bundled with Haiku releases. Since I have last demonstrated the prototype publically, I have occasionally found the time to work on it some more. I’ve ported over most brush tool related code from the original WonderBrush. And in the past weeks, I have specifically worked on a new text tool (written from scratch).
In recent times I have become much less of a BeOS/Haiku full time user and regularily use other systems such as Ubuntu, Windows 7, and sometimes even Mac OS X Leopard. After my very recent blog post on my impressions of the GNOME 3 Shell, I've narrowed down some ideas floating in my head about how Deskbar could be changed to improve it's usability. Let me list some things I like or hate in other desktops.
GNOME 3 is out and of course I was very curious to give it a spin. As the GNOME developers claim they care a lot about usability and have given the new desktop design a lot of thought, I was pretty excited, since I care about these things as well. Haiku still has a lot of usability issues that we need to sort out. Maybe we can learn a few things. So what are my impressions? To be honest, I have pretty mixed feelings.
Going through some backup files on my hard drive, I discovered a blog entry about my work on the Media Kit and MediaPlayer, which I for some reason never published. Even though it's about work which happened some time ago, I am going ahead and publish it anyway, perhaps it's still an interesting read for some. Here it goes:
While I was contracted to work on the port of WebKit to Haiku, and later on WebPositive, I've written regular enthusiastic blog entries to report on my progress. This time around, I haven't felt confident in the results of my work up until now. Getting the FFmpeg plugin to perform decently was quite a piece of often frustrating work.
Working on my rewrite of WonderBrush, I've been thinking about the document management. As you may know, WonderBrush is a stricly single window application in its current release. It can still open more than one document at once, of course, and those are displayed in a list above the navigational preview of the current document. One of the drawbacks of this approach is that there are no previews of all the documents visible at once, and it's harder to make non-current documents the target of drag&drop operations, like when dragging objects from one document onto another document to move or copy them there.
At least it can finally log into Facebook. Not that I am a fan of Facebook, but I realize how important it is for WebPositive to be able to log into that site. Some other seemingly random crashes have a good chance of being fixed, too, since I was able to track down a memory corruption bug that was caused by different parts of the code being compiled with incompatible defines. Unfortunately this took a bit of experiementing until I was finally on the right track. Today I hooked up my quad core machine to temporarily replace my regular Haiku work machine, which is CPU wise a bit underpowered. The insane rebuild times were really getting on my nerves. Even with the quad core it took quite a bit of patience, but to be absolutely sure to compile everything with the right defines, I had to compile… well… everything. Many times.
Hah, you wish! These blog titles are getting way ahead of the progress I make with WebPositive. Or let’s say the title is truthful in some ways, but on the other hand perhaps suggesting more substantial progress than what was made. I did turn my attention to fixing a lot of little annoyances and bugs that were reported via various channels, the comments section of this series of blog entries being among the important sources of feedback. So keep the good feedback comming, it’s very useful for me!
Wow, it’s been 10 days already since I posted my first blog entry on my work on WebKit and the native web browser. Of course my continous updates to the package I posted in my first article will probably have spoiled most of the surprise, but HaikuLauncher has been reduced again into just a bare browser shell, while a new codebase, WebPositive, has been split off from it. Using WebPositive has become a whole lot more pleasing in the meantime. For those of you who have not followed the comments to the original blog, these are the things implemented since my first post on the project:
First of all, I want to thank Haiku, Inc. for giving me the opportunity to concentrate fully for a while on the WebKit port and browser! This is an awesome chance that I intend to make full use of.
At the moment, I have mixed feelings. Not about writing blogs. Not about working on WebKit. But about using the new WebKit browser to write the blog entry, haha! I’ve seen it crash, although in the last days, it has become pretty stable. After we upgraded to a newer WebKit version as the basis for the port, the frequent random crashes have almost disappeared and I saw only one crash in three days. Compared to one every few minutes before.
In these exciting times, during which Ingo Weinhold is making great progress with some performance optimizations in the Haiku kernel, I felt this strong urge to conduct some benchmark results, even if that caused me great deal of pain in setting up all the test platforms! The results are quite interesting, even though I didn't manage to test all possible combinations of host platforms and file systems.
This time I am very happy to be part of the organization team for BeGeistert, the bi-annual gathering of BeOS and Haiku fans in Düsseldorf, Germany. That's because I get to see who registers, and I can tell you that I am almost bursting with excitement, since this BeGeistert will be a big one! Beside the regular BeGeistert visitors, this time there are people coming whom I've known for years only via the Internet and who I can now finally meet in person. And there are also a bunch of old-timers coming who didn't participate in the event in years. Even new contributors will show up for the first time, like some of this year's Google Summer of Code and Haiku Code Drive students.
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.
Wow. What a week. The Coding Sprint is over and I am very excited at what we achieved together! Haiku has become much more usable and polished thanks to all the fixes and improvements. For example, I can now use Beam to read and send my e-mail, which is obviously quite important for me to be able to use Haiku on a day by day basis. But that was certainly not all.
The "Chemnitzer Linux Tage" (Chemnitzer Linux Days) was actually celebrating it's tenth anniversary. It started out as a kind of Linux install fest, but has since become a general Open Source event where all kinds of projects have a platform to demonstrate themselves. So despite the name, this event was perfect for Haiku.
To be honest, I was a bit desperate in the run up to BeGeistert 018. The fact that most of our core contributors were present gave me high hopes for a good push of Haiku development. Since my laptop was stolen, which was a really solid Haiku machine, I could not run Haiku natively on my main development computer. Even on some older computers I had, I could not run it anymore since the initial changes to the IDE stack. Next was the fact that I bought a new USB based KVM switch. The only USB stack with which I had a working keyboard and mouse was the original Dano stack. And even then I sometimes lost input when switching back to BeOS from another computer. With Haiku, the input devices were not working at all. So I was packing both my computer, monitor and the KVM switch for BeGeistert, all in all, it was quite a load. I was heading towards BeGeistert with a bit of mixed feelings, because Haiku wasn't working so well for me anymore and I didn't know if it was going to be fun only or with some disappointments mixed in.
Whenever I was with Axel and saw Haiku running on his IBM ThinkPad T40p, I was almost convinced, that he must have forgotten to commit a rather effective patch, though he swore that that was not the case. I have never seen the app_server perform so well on any other machine.
My backpack turned out really heavy, because at the moment, I have no mobile computer. Luckily I have one of those "industry embedded" machines, as big as an external CD-ROM drive. But I still had to pack my 17" flat screen. The travelling by train was nice, although I almost got off at the wrong station in Basel. I mean, I did get off, but I got back in in time.