Older blog entries for robilad (starting at number 84)

Spring is in the air, it's time for a RC

After a few weeks of cleaning up, fixing bugs, polishing, resyncing around, Kaffe's 1.1.7 rc2 is up, with all the goodies from GNU Classpath 0.90, and some more niceties, like the beginning of a port to blackfin CPU architecture, various fixes for Cygwin, OpenBSD, etc. The majority of build issues we had during the transition to use fastjar, embedded zip and merged in GNU Classpath are fixed now.

The tarball is up for download at http://www.kaffe.org/~robilad/kaffe-1.1.7-rc2.tar.gz

Walk like a Belgian

Sunday at FOSDEM started with me sleeping in, and Wolfgang Bär politely banging on the door to make sure I don't miss the five slices of bread and a slice of cheese at CHAB. More accurately, since Roman Kennke, who was staying there as well, was scheduled to talk at 9 AM, we scrambled to have breakfast, check out, ride with Michael Koch to ULB and pop in just in time for Roman to start his presentation. It worked.

Roman showed how far GNU Classpath's SWING implementation has gone from early last year, when we had demos somewhat running, to today, when BeanShell, JUnit and other applications work fine. A lot of people have hacked on Swing in GNU Classpath, and put in hours of work to fill in the stubs with working implementations, and it shows. I am looking forward to running at least the NetBeans RCP on Kaffe OpenVM this year, given the amazing amount of progress by Roman, Lillian, Anthony, and many others.

Another area of huge activity in the past year was CORBA support. Dr. Audrius Meskauskas picked up the ball when it became clear that we can't use OMG's org.omg code due to their non-free license, which prohibts modification. As it turned out that all the other free software CORBA implementations written in the Java programming language had the issue that they depended on or included the non-free code from OMG, GNU Classpath had to write its own implementation, written from scratch, and free from non-free dependencies. Audrius created a largely complete, compatible CORBA implementation in GNU Classpath in a couple of months almost single-handedly, and has plans to add better tool support and some interesting ideas to improve the performance using dynamically generated proxies.

Then it was time for the battle of GNU Classpath interpreters for the 'state-of-the-art' crown: Robert Laugher's JamVM vs. Christian Thallinger's Cacao. First Robert explained some of the tricks used to make JamVM really fast, and then Christian showed the results of using vmgen to generate an interpreter that's about as fast as JamVM automatically. I'd be very interested in seing the vmgen-generated interpreter merged into Kaffe, as an additional interpreter, in particular for the platforms where we don't have a working jit yet. The code looks nicely mergeable, we'd just have to figure out how to best deal with the different internal representation used in Cacao.

Finally, the day was wrapped up with a discussion to see what everyone is working on. During the dicussion, a fim crew dropped in to film it, and asked the participants where they were from, etc. They seemed a bit surprised that a free software developer meeting in Belgium would draw participants from all over Europe, and the US. It must feel weird to see that free software development is a social activity, if one does not expect it.

I had to leave a little early, to catch the last trains back to Saarbrücken, so I missed out on the last pub stop and related discussions. All in all, FOSDEM was great, like every year. Thanks to Pascal and the rest of the FOSDEM team for having us.

Back from FOSDEM

FOSDEM is a great free software developer meeting taking place each year towards the end of February in Bruxelles. It's every year an awesome experience, and has turned for GNU Classpath into the equivalent of a yearly developer conference, where we meet to celebrate the achievements from the past year, and to pick up on the latest, newest things everyone is working on.

This year, we've had a bigger room than last year, so we didn't quite manage to pack it overflowing with people like the last year, but the attendance has been slightly higher from my counts. In particular, this year we had a documentary film crew filming the GNU Classpath future planning talk on Sunday afternoon, and enjoying it all, apparently.

We've had many regulars, this being the third year of GNU Classpath sessions at FOSDEM. We've also had many new developers who joined us for the first time, and interested visitors, who came in to see how far GNU Classpath is, when they can expect to see their code liberated from the proprietary Java trap, and what they can do to help.

Friday had the traditional social evening, this time in "A La Mort Subite". My train had an engine failure on the way to Bruxelles, so joined tromey, mjw and the rest of the hackers a little later than I had hoped. It was a nice evening, with Geuze and all that.

Saturday started off with Richard Stallman's talk on GPLv3, software patents, digital restriction management and treacherous computing. Richard was fun to listen to, as he did little theatrical stunts to illustrate his points, and he seemed to have a good time. His talk, and many others (valgrind! rife! darcs!) should be available online at the Belnet FOSDEM video mirror site.

Then we headed to the GNU Classpath room, to get treated to David Gilbert's story of JFreeChart's liberation, starring GNU Classpath, Cairo and David's CairoGraphics2D implementation, and shining a spotlight on how awesome the Mauve compatiblity testing project has developed in the past years. JFreeChart looks great on GNU Classpath+CairoGraphics2D. The slides are up on the FODEM page on the GNU Classpath wiki.

He was followed by tromey demonstrating how to hack use Eclipse to hack on GNU Classpath, Mauve and all that, and how to bootstrap oneself into that environment. That was a fun show and tell talk, and it's great to see how far things have come, and how easy it has become to tie various components together into a nice working setup.

Saturday's final talk was a demonstration of debugging of gcj'ed binaries using nothing but emacs & gdb. It turns out that gdb is pretty nice for the task, in particular in combination with the _Jv_Debug function, which dumps and unrolls objects. Gdb can deal with about anything thrown in its way, so one can literally walk all the way down the stack from a Java application compiled to native with gcj, to libc code performing the actual work.

I was particularly happy to meet Guilhem Lavaux, who's been doing all the hard work on Kaffe for a long while. He's as great in real life as he's on IRC, and currently hacking on improving the native code in GNU Classpath on a separate branch, among other things.

Saturday rang out with an evening at the BLX cafe, and the restaurant next to it, whose claim to obscure fame is that it has a literal "Vegetarian Dish" on the menue, though I have no idea what that is supposed to be, and nice Stoemp and Belgian beers. I've had some good conversations with Apache Harmony's David Taenzer, Jeroen Frijters from IKVM and Chris Gray of Wonka fame, during dinner.

More on FOSDEM tomorrow.

I guess every planet aggregator reaches a critical point, when memes start sweeping it. It's a regular feature on planet.debian, so, without much ado, I'll join in the fun on planet.classpath with my quiz score: Social Liberal (91% permissive) and Economic Liberal (8% permissive).

I was hoping to score the full 100% on Social Liberal, having grown up in a Third-Way country, but I guess the test is wrong.:)

19 Sep 2005 (updated 19 Sep 2005 at 23:25 UTC) »
Running JOnAS on Kaffe

One of the positive things about using the Java programming language is the mass of Free Software libraries and applications written in that programming language. There are even several certified Free Software J2EE environments, like JOnAS. Since Free Software written in the Java programming language needs to be liberated from the Java trap, I play off and on with software that I haven't tested against Kaffe successfully yet.

With a lot of help from Andrew Haley from gcj (who spent a lot of time making JOnAS work well on gcj and GNU Classpath since last FOSDEM) and Florent Benoit from JOnAS, I managed to get the JOnAS to fire up, and wiggle around on Kaffe's CVS head (with a patch or two). Instructions are at the Kaffe OpenVM mailing list, and may work for other GNU Classpath runtimes as well.

If you are using text mode browsers, you should then be able to use links to connect to port 9000 on localhost and get an impressively styled down, cool retro screenshot

If you are using Firefox, then you can see the JOnAS console in its full whaling glory.

I guess Kaffe 1.1.6 is now really ready for release, and I am ready for the GNU Classpath DevJam.

Elections, Schmelections

I've excercised my hardly fought for right to vote (I only got the German citizenship a few years ago), and ... it looks like there is no winner. None of the highly advertised coalitions of socialists and greens or christian democrats and liberals has the necessary votes for the majority. The undeclared winner of the election is the "left" party, who managed to sneak into the parliament on a wave of "leftist street-credibility" mix of anger over social reforms and miserable economic performance of the current governing coalition. They managed to get more votes than the established greens, thereby making both "red-green" and "black-yellow" governments impossible.

The remaining, possible combinations for government coalitions are not desired by the politicians, after a fast and partially bitter election campaign. The campaign got started after the socialist chancellor Schroeder, in a fit of panic after losing his home-state to the christian democrats in regional elections, decided to walk a constitutionally questionable thin line towards the reelections in hope that he'll be able to regain voter confidence.

So much for that brilliantly desperate and pointless plan: it didn't work at all. Quite to the contrary, both the socialists and the greens lost seats in the parliament, losing their majority by a huge margin.

On the other side of the German bipartisan divide, the challenger Merkel, starting off with a healthy majority a few months ago, managed to see it dwindle away while the socialists campaigned increasingly aggressively and effectively against her, and her party's badly communicated reform plans. She ended up scoring one of the worst results for christian democrats ever.

The margin between the socialists and christian democrats is around a percent in favour of the christian democrats. It is small enough for Schroeder to openly challenge Merkel's ability to form any government, without his participation. It seems that in a (most likely) coalition between socialists and christian democrats, there would be no place for both Schroeder and Merkel, so one of them will have to find a way to step down in dignity. Given that the German elections are not over yet, since the vote in a part of Dresden is delayed for two weeks due to the unexpected death of an extreme-right direct candidate (the German voting system is complex. Really complex. I'll mention just one word "Überhangmandat" and let you google for it if you need to know one of several weird bits and pieces of the German voting system), we are bound to see two more weeks of heavy trash talk from all parties, fighting for another 100000 votes and one sure seat.

If tonight's TV debates between the party leaders are an indication, it's going to be some heavy, irrational trash talk time. A coalition between christian democrats and socialists won't work, since they can not agree who would be heading it. A coalition between socialists, greens and liberals or a coalition between christian democrats, greens and liberals (which would be a novum) won't work since the liberals have refused to enter a coalition with any member of the current socialist-green government. A coalition between any of the blocks with the "left" party won't work either, since they are despised by all the other parties for ruining it for everyone (and being way too contrarian with their opposition towards social reforms and pacifism), and the leftists seem to be quite happy about it.

Chances are, if the politicians continue playing their love-hate relationship games, we'll have another indecisive election for christmas. Yay. Too bad that elections are not a cure for a lack of comprehensive leadership and good ideas in all the camps.

Preparing Kaffe 1.1.6

Thanks to the tireless testers on the mailing lists, and IRC channels, a good number of issues were spotted in 1.1.6-pre1, that will be fixed with a 1.1.6-pre2 tonight. It's going very well.

People heaping rubbish on Mono and Miguel

Yay, after Microsoft showed another display of classic Microsoftean behaviour by not letting the Monos have a BOF at the PDC, the trolls erupted in joy on Slashdot. Sigh.

I really hate it when people throw mud in the general direction of Miguel and the Monos, who are doing a lot of pretty cool and useful work. Someone has to deal with the C# trap, too.

Free Runtimes In Venezuela

I came across this article on Barrapunto, which seems to say that Venezuela is encouraging the use of Free Software in the government over non-free alternatives. That's great news.

The odd bit in the submission is that apparently Sun Microsystems will talk to the Venezuelan government tomorrow to explain how Sun's non-free runtime can be used to write Free Software. I feel kind of sorry for Sun that they have to jump through all that because a lot of people are still unaware of the quality of, say, GNU gcj, and similar projects around GNU Classpath.

One of the points I regularly make to scared 'Java-for-life' developers, is that Free Runtimes like Kaffe OpenVM open new opportunities for them to leverage their skill set, by making it possible for them to reuse their knowledge of the language and platform in contexts in which otherwise that skill set would be useless.

For example, when a government contract mandates Free Software to be used in a solution, then either you go with a Free Runtime, or you don't get to do it at all in the Java programming language. If your code has never been tested on a free runtime, then you may have ran into the convenience trap of using non-free software in ways that make it hard to migrate your code to a free runtime, by using non-specified classes and methods, for example. Cleaning up OpenOffice.org's portability issues was not trivial and took some time to get done.

As RMS said:

"To keep your Java code safe from the Java Trap, install a free Java development environment and use it."

On a side note, the Barrapunto article probably explains the surge of Venezuelan developers on #debian-java in the last few days.

Kaffe on Cygwin

After a few days of wrestling with bizarre library name lookup issues, and Cygwin's assembler's lack of appreciation for nice x86 assembler PIC code function declarations, I've managed to get Kaffe building and running largely fine under Cygwin, so that now people can hack on Kaffe on Windows, as well.

That was actually an ocassionally requested feature, in particular in the post-Harmony-announcement rush of good will and volunteers to try it out and see how far along that whole free runtime thing is. And as a lot of people are stuck using a popular, non-free platform, but apparently nevertheless want to help out on free runtimes, ...

The upcoming 1.1.6 will be able to run on Cygwin. See the docs for details.

I'll go back now to preparing the release, and merging in the remaining patches.

10 Sep 2005 (updated 11 Sep 2005 at 12:56 UTC) »
Another Modest Proposal: Ending license discussions quickly

It was pointed out to me that my last week's modest proposal was helpful, but may still leave too much room for normal, non-lawyer people to waste their time decyphering pseudo-clever, condensed lawyerese.

Again, it's simple: Just add a variant of Godwin's law to the OSI definition.

12. Gowdin's law: If, during the discussion of the list on he OSI lists, the license steward needs to invoke or refer to the opinion of a lawyer to convince the public that the license is indeed open source, the license automatically fails this variant of Godwin's law, and is no longer considered open source.

75 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!