Tales From the Land of Auck and Zea

Blog post by yourpalal on Thu, 2012-02-16 21:42

As was announced a little while ago, I recently got the opportunity to travel to Auckland, New Zealand to do some Computer Science research at the University of Auckland (UoA) with Christof Lutteroth and Gerald Weber (two professors here). Actually, it's not so much 'recently' as it is 'currently', since I'm still here! Christof has been interested in Haiku for a while, and has already done some research using Haiku. Stack and Tile, for instance, started as a research project here, as did the BALMLayout layout class. Furthermore, I'm not the only Haiku-er here, as Clemens Zeidler is currently working on his PhD in CS under the supervision of Christof and Gerald.

My supervisors have been very flexible with what I can work on, and we decided the first thing I should do is work on the BALMLayout. BALMLayout (ALM = Auckland Layout Model) is based on the idea of a constraint-based layout, where the programmer doesn't explicitly position elements, but rather describes how they must be positioned relative to each other or the layout area, and ALM figures it out. Since the code for BALMLayout was written before I started working on Haiku's layout API, BALMLayout had fallen behind a bit. So one thing I worked on was getting it up to date with the API. There were also a few things that BALMLayout was doing a bit differently from the other layout classes, which I've now normalized. I've also implemented a layout builder class for ALM, like the ones that exist for other layouts. The end goal is to have BALMLayout promoted to be a first-class layout, included in libbe.so, like the Grid, Group, and Card layouts. Although I've already written a bunch of code, I haven't yet pushed it to the main Haiku repo, but that's something I hope to do soon.

The next project I'm working on is pretty interesting in a few ways, as it includes running and compiling Java code on Haiku (using JamVM, GNUClasspath, and Eclipse's ecj compiler), and calling Java code from C++ as well (using JNI). Although this work is more experimental, it should pave the way for using PDStore, a triplestore database developed at the UoA on Haiku, basically making it available to C++ programs as a library.

Now that you guys know what I'm up to, I want to thank everyone who helped make this trip possible: Haiku folks, UoA folks, my family and also Google (especially Carol Smith at the Open Source Programs Office), who provided me with a grant to keep things running smoothly.


Re: Tales From the Land of Auck and Zea

IMO I think BALMLayout needs a more descriptive name. The name should describe what it does, not how it implements it (ALM).

Re: Tales From the Land of Auck and Zea

While I agree that BALMLayout isn't an intuitive name, it actually is related to what it does, not how it's done. The Auckland Layout Model is a model for layout specifications which is implemented in Haiku by the BALMLayout class. There have been academic papers published on the topic, so to some people, this name would be very descriptive. The other thing I have thought about is acknowledging that the layout is a product of the research effort at the University of Auckland. We also have very few layouts, so I think the name isn't that important, as once you know what it does you can quickly and easily find it again through the process of elimination. To this end, how do people feel about renaming BALMLayout to BAucklandLayout?

Re: Tales From the Land of Auck and Zea

Fully agreed! How about "BConstraintLayout"?

Re: Tales From the Land of Auck and Zea

I think NewYorkModel sounds better. :-)
no really, i think "BConstraintLayout" that stippi suggested is better suited. Binding haiku somehow to a location seems a little weird to me.

Re: Tales From the Land of Auck and Zea

I'm not sure if I just got unlucky, but while working on IMAP, I've also removed the use of the BALMLayout in the folder config window, as the whole window felt sluggish when resizing. Is BALMLayout fast enough to be actually usable in real world scenarios (this was a very simple window)?