coding sprint

BG026 Coding Sprint report

Blog post by PulkoMandy on Fri, 2012-11-09 08:49

Hi there !
This week was the BeGeistert coding sprint. I assume you already read the great report at IsComputerOn about the conferences for this week-end, so here's just a summary of the work done durint the coding sprint.

ARM Port - Ithamar Adema, René Gollent, Adrien Destugues

Ithamar was holding the keyboard on this one. He's working on low-level Android stuff as his paid job, so he has a good understanding of the hardware and the Linux kernel that serves as a reference.

The ARM port was started as a Google Summer of Code project back in 2009. The project got the kernel compiling, and the bootloader working. Things more or less stayed there after that. However, with the recent release of the Raspberry Pi and some other cheap ARM-based hardware, there is interest for ARM again.

Ithamar is working with the Gumstix Verdex board. This is what was used for the work in 2009. That board is quite old by now, but it has a complete emulation in QEmu which is very useful for debugging the kernel.

We worked on getting interrupts, context switching, and page faults working. This brings the kernel to the point where it says "Cannot find any boot partitions", because there is no mass storage driver yet (it also lights 4 icons on the bootscreen, which is also working). We tried to add the usb mass storage driver, but that reliably triggers a panic which also happens, but only sometimes, on x86.

We also did some work (with remote help from Oliver Tappe) in getting the ARM toolchain working on Haiku. The compiler can now be built, and u-boot tools are ported (they are required to build a bootable image that the u(boot bootloader can work with). The build of an ARM version of Haiku still requires a tool to create partitions from the command line, and some scripts changes to use our own mkdos command instead of dosfstools mkdosfs. Ithamar may work on this since he now has installed Haiku on his laptop.

FDT support - François Revol

As part of his work on the PowerPC port, François is working on Flattened Device Tree support. The FDT is a data structure passed by the u-boot bootloader to the booted kernel. It describes the hardware the kernel is running on, and allows to find where are the serial port, frame buffer, keyboard, mass storage, RAM, etc. needed by Haiku. This avoids hardcoding drivers to fixed addresses for these peripherals. Since u(boot is also used on ARM devices, this work will be reused there as well. This will make it easier to port Haiku to more hardware with PPC and ARM chips.

BMenu tracking code rework - Alexandre Deckner

The code in BMenu is one of the most messy parts of the interface kit. Each menu is actually a BWindow, which means it gets its own thread and event loop. As a menu tends to share a lot of data with its submenus, the code is very messy and has a lot of small bugs. Alexandre is reworking this code to use a better solution.

WebPositive service kit network backend - Alexandre Deckner

The Services Kit is another of our past GSoC projects (2010). The plan is to have a full-featured http API for getting information from web services more easily. The kit has been merged into Haiku but is completely undocumented, so it's not seeing much use.

Alexandre started by merging some patches for better https support. He then tested the kit by writing a weather deskbar replicant that makes use of it.

But the core of this work was on the WebPositive broser. The browser currently uses WebKit's default Curl backend. While being the default, this is not used by most WebKit based browsers and has a number of problems with cookies, caching, and https connexions, as well as being quite slow. The idea is to replace this with a backend relying on the services kit, to avoid this problem. This means the cookies and other information will be shared with other applications using the kit.

Debugger improvements - René Gollent

René worked on watchpoints support in Debugger. That's one more step on making it a suitable replacement to GDB.

Stack&Tile fixes, ALE, and more - Clemens Zeidler

Clemens is currently working on his phd at the university of Aukland. The research department has some projects focused on improving user interface interaction. They use Haiku as a prototype for their research, as it is easier to modify things that affect the whole system. You already kow their work as the Stack and Tile support and the Aukland Layout Model.

This year Clemens showed us the Aukland Layout Editor which is a drag and drop tools for laying out an user interface. It can be used at runtime on ALM-based windows to freely alter the layout. Clemens asked each of us to go through a set of test applications to see if we managed to use the feature to make our work more efficient. There is also support for graphically routing events (such as a button click) to actions, in a way similar to the Cortex application. That stuff looks very promising.

Clemens also fixed some Stack and Tile related bugs in Haiku.

fRiSS user interface update - Adrien Destugues

fRiSS is an RSS and ATOM feed reader for Haiku. It just displays news items from your favourite websites in a window or a desktop replicant. fRiSS is available in Haiku as an optional package, and I'm working on improving it.

With the apha 4 release around the corner, I wanted to improve the user interface that was quickly hacked together. I cleaned up the code and improved the drwaing so it looks more like a regular Haiku application. This was finished right in time for the Alpha 4 code freeze, so people installing alpha 4 will get the very latest version of fRiSS.

NetSurf browser improvements - Adrien Destugues

NetSurf is a web browser. Originally developped for RiscOS, it has a focus on being very fast and lightweight. The BeOS port was started by François Revol with the target of replacing NetPositive. His main use for that was using Netsurf as a replicant inside the BeHappy application. this means while the html rendering works very well, the UI shell around it stayed very basic.

My work included adding graphical toolbar buttons, a download window (not saving the file to disk yet !), some event loop fixes to avoid network activity freezig when the UI is not doing anything, and updating the port to the latest sources from NetSurf git tree. I also added the support for automatically stacking windows using Stack&Tile, which removes the need for any in-application tabbing. I hope to see more applications supporting that soon, maybe starting with Terminal.

NetSurf is a very nice browser and much faster than the alternatives on Haiku. Its main drawback is the lack of JavaScript support, but the developpers are actively working on that. I think this browser has some potential for becoming the standard choice in Haiku. It is also much faster to compile than WebPositive with the whole WebKit framework, which makes it a lot easier to improve on it.

One last mention : I also did some work on APlayer, a release should not be too far but there are some issues I'd like to solve first.

The end.

Overall, this was a pretty good coding sprint with lots of stuff going on. We also saw some remote activity as the Alpha 4 release saw his code freeze happen during the week and is now in final testing stage. If all goes well, it will be available on monday.

BeGeistert 024 + Coding sprint report

Blog post by PulkoMandy on Fri, 2011-11-04 12:17

I'm heading home from the BeGeistert event that just ended today.

For those who don't know, BeGeistert is the european meeting of all Haiku (and BeOS) developpers and enthusiasts. This year, Haiku has seen its third alpha release, and we feel that R1 shouldn't be too far.

So, what happened there ? Over the weekend we had multiple conferences. The first one on saturday morning was a discussion on Haiku's release process and roadmap for the future. We didn't have time to solve all the problems, but at least one important decision was taken : after delaying the switch to git to after alpha3, then after gsoc, we finally decided it was about time to actually flip the swith. This is scheduled for the 12th of November.

Speaking of Git, Oliver Tappe made a talk about how to use it and the main differences with the current Subversion, and presented the work done so that Haiku developpers don't get lost.

Then, there were talks from Ingo and Oliver about package management, with an impressive demo of the current status It's working, but there are some problems with it like deskbar replicants not working anymore because of the readonly nature of packages (that was solved later during the coding sprint).

Stippi presented us the layout API and some examples on how to use it. The Layout API is an extention to the interface kit that allows much more easier design of window layouts.

François Revol presented us a proposal for UXA, an unified extended attribute scheme to efficiently share attributes between different OSes. While many filesystems and OS now support attributes like Haiku (NTFS, ReiserFS, ...), they all use their ownscheme and the conversion from one to another isn't always a reversible process.

We also had a presentation of an application called VOPTOP, which is a nice peer-to-peer VoIP chat application. The main feature is it uses peer to peer routing to make the communication. This makes it needed to use encryption to make sure one pf the peers doesn't spy the communication.

Finally, Matt Madia told us about the status of Haiku, Inc. Besides helping with the funding of BeGeistert, they are paying mmlr for a full-time year working on Haiku, which is likely to bring us much nearer to R1. The donated amount to Haiku, Inc. this year was rather impressive, which makes it possible to think about more contracts for Haiku developpers, but also things such as giving Haiku shirts to people showing out Haiku at various free software conferences (to strenghten the image of the project).

Axel proposed a patch hour on sunday. An ongoing problem in Haiku is the unability to handle patches submitted by users on Trac. Our policy is to review the patch, and ask the author to improve it. Quite often several rounds of improvements are needed, and people don't react too fast or give up on the amout of work needed to get the patch in. So, the patches tend to accumulate in trac and never get commited. They get out of sync with svn trunk, and it is not possible to apply them anymore. So, Axel took the list of 144 patches waiting on Trac, and wrote the ticket id of each of them on a piece of paper. Each of us was given 5 tickets to look at and make a decision. Either cleanup and apply the patch, or reject it if it doesn't work. At the end of the hour, about 40 tickets were closed. Some of us continued looking at the list over the week, and now there is less than 80 patches left, so the list has decreased by half.

As the weekend was over, the coding sprint started. 9 developpers were present this year : Matt Madia, François Revol, me, Olivier Coursiere, Ingo Weinhold, Michael Lotz, Oliver Tappe, and Rene Gollent. With the imminent switch to Git, Matt worked on getting a buildbot running with it to replace Build-O-Matic that only does SVN. However, he ran into some weird problems with building the now 10 years old gcc2 on FreeBSD, so not everything is working yet. François worked on bringing the 68k port of Haiku back in compiling state, as it was broken by some architecture changes. This was a success, as we can now run KDL on the aranym emulator. The work stopped at needing a build of the ICU package, which is a bit painful to do for platforms other than x86. Olivier worked on Lazarus, a Qt-based Delphi clone that now mostly runs in Haiku. He also made some stress testing of Haiku by copying the OpenOffice sourcecode around. Eventually, he found a bug in DiskUsage and fixed it. Michael and Ingo started tracking a memory corruption bug that may be the cause for the few remaining cases of FS corruption. But this ended up in writing KDL tools for tracking memory use, which will come in useful to track memory leaks, looking at pages owners and similar stuff. Oliver worked on fixing our wchar_t support. He got it working but needs to test compatibility with BeOS applications. The change involves the compiler support for wchar_t, and any application using that needs to be rebuilt. If we can't get it working in a way compatible with BeOS, it's likely that only gcc4 built parts of the system will get the fix. Rene Gollent worked on some TODOs for the debugger. One part was saving and resoring the view layout of Debugger accross sessions. The other was starting to add a CLI mode. When both are done, Debugger will replace GDB as the default debugger for the system. The CLI mode is needed mostly to debug app_server crashes. I worked on various areas of the system, but most notably reworked (again) the notification windows (I'm now rather happy with the result), and fixed bugs in the game sound API which now seems to be working fine.

Overall this coding sprint week was very productive, with several hundred commits improving the Haiku codebase. This also apparently boosted donations to Haiku, Inc. quite a bit. I'm ready to attend the next one.

October 2010 Code Sprint Report

Blog post by aldeck on Sat, 2010-10-30 01:08

Fernsehturm Düsseldorf
Düsseldorf

Preceding the BeGeistert 023 weekend was the usual weeklong Code Sprint (18.-22. of October 2010). Present to this year's coding sprint were (from left to right on the photo below):

Colin Günther (bosii)
Oliver Tappe (zooey)
Clemens Zeidler (czeidler)
Rene Gollent (anevilyak)
Alexandre Deckner (aldeck)

Obligatory BeGeistert Report

Blog post by mmu_man on Tue, 2009-10-27 05:10

I'm in the TGV back to Valence on wednesday, which luckily has many power plugs, unlike the Thalys which has wifi but no plug for those battery-drained guys like me. It's 21:30 as I start writing this. Will take some more days to finish though...

Not there yet

But first things first, after attending a meeting on Friday in Grenoble, I headed back to Valence to leave some stuff there, then back to the train station, where my train got delayed by an hour or so. But the other frenchies I was to share a car with were also a bit late, so they didn't have to wait for me too much. We then took the road to Düsseldorf and started to talk about each others work, and GSoC since we had two of the students on board.

Don't miss this BeGeistert!

Blog post by stippi on Sat, 2009-10-03 10:48

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.