February 2009

Like Andrew Overholt, I’ve recently been looking at the best way to host the pile of videos I’ve accrued over the last few years from recording talks with my DV camera. At the moment, I’m working on the stuff from FOSDEM 09 earlier this month, but I’ve also got recordings from the 07 and 08 events, our Sun Campus Ambassador talks over the last year and a half and many departmental group seminars from the university.

Probably the most well-known is YouTube, but reading their terms of use immediately put me off. They assign blanket rights on contributed content to both themselves and any user of the site, including (most importantly) the ability to create derivative works. Now anyone who knows anything about Free Software will know that creating derivative works is actively encouraged, usually with the proviso that this is under the same terms (see the GNU GPL). However, that’s software. Creative content has its own issues, and one that’s especially of note with recordings of talks is that a derivative work could alter the message conveyed by the speaker.

Imagine you’ve recorded a talk by Richard Stallman (as I did). In a derivative work, someone could alter the message Richard tries to get across to actively promote proprietary software. This is why both I and the FSF choose to use the Creative Commons Attribution-No Derivative license, as can be seen on the recent Stephen Fry video. This ensures that proper credit is given for the work and that it can be freely watched and distributed, while preventing such heinous modifications. Of course, if you’d like to create a legitimate modification, such as providing translation services or transcoding the video to a different format (provided it’s a Free format), then something can be worked out. But a blanket attribution of derivative rights is too risky.

So YouTube is out for that reason. So is one of the other sites suggested by Andrew, Vimeo, for pretty much the same reason. So what are good places to host your video? Dailymotion showed some promise by not handing away your rights left, right and center but they sadly don’t allow you to choose the license given to third parties. I have sent them feedback as requested on their terms of use so we’ll see if anything changes. Both archive.org and blip.net allow a Creative Commons license to be used for your work (just like, incidentally, Flickr does for photos). So that’s where I’ve been posting things so far. You can find the following goodies on archive.org right now:

I also now have a ‘show’ on blip.tv and have posted links to these videos on TheoraSea, a site for the promotion of Ogg Theora videos.

If you plan on posting your own content, I suggest you look carefully at what rights you are passing on to unknown third parties, and make wise choices rather than going for the most popular.

I’ve just returned from another weekend of adventures in Brussels. Yes, it’s FOSDEM time again, the yearly event where a horde of Free Software hackers converge on the ULB for talks during the day and the many bars and restaurants of Belgium’s capital during the evening. It’s always a pretty unique experience, bringing together volunteers and developers from companies such as Sun and Red Hat in one place for lots of discussion and lots of beer.

This year was a bit different for me, being the first as a member of the Core Java team at Red Hat rather than as the lone volunteer developer I’ve been for the past couple of years. I thus spent most the time in the company of my new coworkers, many of whom I met for the first time: Lillian Angel, Deepak Bhole, Gary Benson and, of course, Andrew Haley. It was also nice to see many now familiar faces again. Mark Wielaard was there again of course, this time with both Petri and son Jonas in tow. Jonas is clearly the spitting image of his father and we await his first patch with great expectations. Dalibor was also there, now of course working for Sun rather than maintaining Kaffe (0 releases this year) and initially sporting a heavy beard as a disguise at the Friday beer event. It was nice to see Roman and Mario again; they’ve been rather quiet on IRC of late, presumably snowed under with work at aicas.

Our usual VM reps were there too: twisti (formally of CACAO, now Sun and HotSpot), Robert Lougher (of JamVM, the only Free developer), Ian Rogers (of JikesRVM) and Peter Barth (of JNode). Sun was again represented, but minus a number of more well-known faces. Mark Reinhold was there of course, and it was nice to put a face to the name of Joe Darcy. Also, a big thanks to Sun for paying for the main dinner on Saturday evening, despite their current financial situation. It was nice to see Dave Gilbert of JFreeChart fame again, after he didn’t make last year’s event, and we also finally got to meet a number of new developers: Xerxes Rånby (ARM IcedTea hacker), Clemens Eisserer (XRender pipeline developer) and Karl Helgason (Gervill sound synthesiser extraordinaire).

One of the big chances since things have switched from GNU Classpath to OpenJDK is that the community is no longer as focused around IRC; most of the Sun devs. and the new developers never make an experience, so it becomes easy to forget they are out there hacking away too. It would be nice to see more blogging and maybe an IRC appearance or two from these folks. I suppose this is just representative of the way things have fragmented; whereas before we were one group working towards a common goal, there is now a diverse range of goals with just the one thing in common: OpenJDK. The IcedTea team work away at making things rock on a distro near you, while others are working on their own stuff which will either later be picked up by IcedTea/OpenJDK6 for use now (like XRender) or is heading for 1.7 (like the numerous Sun projects on the OpenJDK web site).

Although the talks at FOSDEM start on the Saturday, the real start is the night before. The Free Java crew have traditionally avoided the main beer event in favour of BXL and A La Mort Subite, and this year was no exception. We spent most of the evening in the latter, with a range of beers and omelettes being consumed. Jonas made an appearance early on, but soon went home to bed. Unusually, Dalibor didn’t join us in person, but merely by phone from the beer event. After many failed attempts to have a conversation with him over the noise of many thirsty hackers, those of us who were left in A La Mort Subite headed down to meet him there instead. It was a rather bizarre environment, with many people clustered in a narrow pathway chatting away and occasionally going inside to get drinks. Around 2, we called it a night, having already decided earlier on to skip the rather unappetising keynotes in the morning in favour of a good breakfast.

And so I met up with the Red Hat team about 11 the next morning, heading to BXL around 12:15 after a round of omelettes, English breakfasts (with blood sausage) and cherry pie. This year, we took the easy route to the university, grabbing a cab in the Grand Place which got us there early enough to get good seats and allowed me time to set up the camera. This year’s room was probably the best of the ones I’ve been in (having been to the last two FOSDEMs as well). It was probably about the right size, and both water and coffee were on hand within the room. The session started, as last year, with a summary of the state of OpenJDK from Mark Reinhold. This year, he was also joined by Joe Darcy, who did the same for the 1.6 branch. The main announcements concerned the availability of the new change review and Bugzilla sites, the latter only currently handling patches not actual bug reports — those should still go to Sun’s awful bug database for now. The news of the plugin was also reiterated; it’s going to be released as Free Software, but we don’t know when. Not much change from last year there then. However, this isn’t so much of an issue any more as the plugin in IcedTea (developed by Tom Fitzsimmons and Deepak Bhole) can pretty much replace it. The main message of the conference as a whole was the aim of working more closely together i.e. of having more patches go into OpenJDK itself rather than being maintained in IcedTea. This would certainly make things easier, and we hope to work towards this over the coming months.

Mark and Joe both gave a subsequent talk about the OpenJDK7 project they are involved with. For Mark, this is Project Jigsaw, an attempt to modularise the JDK. Most of this discussion focused on how JAR hell and classpath command line options will become a thing of the past through explicit representation of dependencies within new Java modules. There was quite a lot of debate about how to represent these, including how to handle things like virtual dependencies (‘I want an implementation of at least the Java 1.7 specification’) along with disjunctions (‘but not JRockIt because it has a nasty bug that affects this code’). The module system is intended to hook into the underlying package management system of the distro, such as RPM or apt and there were many helpful suggestions from some of those present who’ve worked with these formats, notably Matthias Klose (doko) from Debian/Ubuntu and Gary Benson from Fedora/RHEL. I guess one of the most interesting issues for Sun will be how to implement this on the legacy system they still support, namely Microsoft Windows, which has no package management system to start with…

This was followed by a discussion of Project Coin from Joe. This is focused on small changes (hence the name), some examples of which included allowing switch statements to operate over other constants such as String and Class objects, as well as the more usual numbers, booleans and enumerations and making array notation more generic so it can be applied to e.g. collections making map.get(p) become map[p]. There are already plenty of ideas that have been posted to Sun’s bug database over the years, so where the project really needs help is in pruning this list, picking out the wheat from the chaff, and providing prototype implementations which may later be included in OpenJDK if they prove worthwhile.

After a short break, we were treated to two talks from the Red Hat team. First, Lillian gave an overview of everything that’s happened in IcedTea over the last year. Talking about things you haven’t worked on yourself on behalf of someone else is always the most difficult part of any talk, and Lillian did a fantastic job of representing the work of everyone on the team. I say this partly because a lot of the stuff she spoke about seemed to have emanated from me, who somehow managed to get out of doing a talk… :D So thanks again, Lillian, I owe you one. Lillian was followed by Deepak, who’s had his head deep within the bowels of the plugin since joining the team and it was great to see all his demos go off without a hitch (especially given some of them used net access we weren’t sure we’d even have about an hour before). From the tone of his talk, it looks like the job is pretty much done; not only did we beat Sun in producing the first 64-bit plugin, but the IcedTea implementation is of course Free Software and can handle the ultimate and most important test: uploading photos on Facebook.

The final talk on IcedTea was given by Robert Schuster, who recently managed to cross-compile IcedTea. He explained how he went about this and some of the issues caused by the hideous OpenJDK build system. The most annoying thing is that this still isn’t upstream in IcedTea; Robert, if you’re reading this, please send the patches to the mailing list. We’d love to make this available for everyone, there’s a huge range of areas in which being able to cross-compile OpenJDK would be of benefit.

Saturday’s final block was all about cool looking or sounding stuff, or things that made that possible. Roman and Mario gave us an update on cheese and broken knives in the shape of the Caciocavallo project, complete with pronunciation lessons. The project focuses on portable AWT peers, with Roman and Mario’s work at aicas involving a lot of different (and rather estoric) platforms. This was followed by a talk from Guillaume Legris on OpenGL, who demonstrated some cool 3D stuff, and Clemens Eisserer, who detailed the performance improvements available from using XRender for complex operations in the Java2D pipeline. Finally, Karl Helgason provided the most sonically pleasing presentation of the day, and certainly the noisiest. He spoke about Gervill (which actually means ‘synthesiser’ in Icelandic) and treated us to a demonstration of a number of tunes rendered using the emergency soundbank he also created. This is a soundbank which operates through emulating instruments; each instrument is composed simply of the frequencies it produces and an inverse Fourier transform is used to turn this into a waveform for output. The day concluded with the conference dinner, during which Mark Reinhold announced that Sun would be footing the bill. After disposing of a lot of nice food and some wine, the discussions moved to the 24/7 Greek bar, where yet more beer was consumed and we persisted against the rather loud music to hear from Mark how we could go about starting to get stuff directly into OpenJDK, especially the new 1.6 forest.

The final day always starts pretty early, and although we delayed the start time this year until 10, it was still much too early after a night of drinking and discussion. After a lunch of crepes, omelettes and capacchinos, we made it to ULB for the second session on languages beyond Java. In this session, Matthias, Alex and Remi discussed a number of techniques for working with dynamic languages on the VM, including the new invokedynamic instruction. The third session was a continuation of the VM rumble which started at 10. Robert Lougher took to the stage, complete with Prisoner jacket, to tell us how the only Free man has been developing his VM. Robert managed to put a lot of work into JamVM this year, mainly by being ‘between jobs’. Just before FOSDEM, he released 1.5.2 (with Classpath 0.98 hot on its heels) which, among other things, now includes support for OpenSolaris, making bootstrapping IcedTea possible on this platform. The following talk by Guennadi Liakhovetski also spoke about JamVM, describing how he’d ported it to an AVR32 chip with hardware acceleration. What wasn’t clear was the advantage of doing this; assuming I understood things correctly, it seems that the number of traps occurring with the hardware accelerated port makes performance noticeably worse.

JNode, the Java-based operating system, was up for discussion next. While it’s interesting to hear how this is progressing, I still fail to see the point. I’m all for implementing new applications in Java, and thus avoid the plagues of memory allocation issues and buffer overflows which haunt C, but it doesn’t seem very helpful to reimplement something already pretty well-refined, like an operating system, simply for the sake of doing it in Java. Also, there is such a thing as horses for courses, and C’s low-level flexibility is much more suited to OS design. However, it is a research project and so hopefully this work can provide some insight into the issues involved with implementing an OS in Java and, more importantly, discover any benefits which clearly outweigh the advantages of simply using C.

The VM session was wrapped up by Gary with the exciting news that the build of Zero that just went into Fedora has passed the TCK on both the 32-bit and 64-bit PowerPC platforms. This is the climax of a huge amount of work by Gary, which started with simply providing a direct PowerPC HotSpot port and has culminated with tripling the number of supported architectures (some of which may also pass the TCK in the future). Congratulations! Gary also discussed Shark, the LLVM-based JIT he and Andrew Haley have been working on. There’s still a lot of space for improvement performance-wise, with some trivial optimisations not yet present in the current implementation.

Our last session was a mix of more fuzzy social topics. Petteri Raty, lead Gentoo Java developer, commented on his experiences of recruiting people to work on Java packaging. The main issue raised was the one of how to keep developers interested, and the long delay between submitting a first patch and becoming a developer. This is common with many projects, notably OpenJDK, so to get involved the new hacker really needs to be made to feel part of the team as soon as possible. Dalibor, replacing Ray Gans at short notice, effectively handed his talk over to the audience, leading an open discussion on where we go next rather than a traditional talk. This seemed to work well, and things look hopeful for greater collaboration between the various organisations within our community. Of particular note was Mark Wielaard’s concern over the lack of public discussion of things such as JTReg test results and new patches. This is largely related to Sun email culture it seems which prefers the mantra ‘less is more’. From the outside, it appears as if nothing is being discussed and thus there appears to be no room for involvement by external contributors. Hopefully this will change over the next year.

Our final talk came from Terrence Barr of Sun Microsystems with the rather strange aim of actually provoking a flamewar over licenses, specifically on whether the GPL without any expectations was still relevant. The most annoying thing about this was his continued use of the word ‘commercial’ where, as pointed out by Andrew Haley, he actually seemed to be referring to proprietary software. It’s clear from the writings of Richard Stallman and the existence of companies such as Red Hat that commercial Free software is not only possible but a viable business model. In the end, the discussion became more one of confusion over terminology than anything else, and there seemed to be little sympathy for the ‘poor developers’ who don’t want to have to open up all their code. Free Software is, of course, done for the benefit of the user not the developer, its primary aim being one of changing the role of developer into that of an equal from that of a benevolent dictator.

The event closed with a group photo and the remaining survivors made their way to A La Mort Subite for a final round of drinks and discussions. All in all, it was another good FOSDEM, with plenty of chance for Free Java hackers to get together and discuss the future direction of the various projects involved. All being well, we’ll be back in 2010 for more of the same… :)

We recently experienced the ‘fun’ of purchasing a new machine via Dell UK. You’d think things might have changed a little in the past ten years, but it seems not. I’ve tend to avoid purchasing machines in this manner, preferring to either build one up myself or taking the Mac option (as I’m going to be stuck with an OS I don’t want either way, and that also used to get me a PowerPC chip).

You are now supposed to be able to purchase a machine with Ubuntu GNU/Linux installed rather than paying the Microsoft tax for their bloated offering. However, it seems Dell’s Inspiron desktop machines are more expensive when you choose this option, rather than being cheaper as one would expect (buying a eeePC without Windows, for example, saves around a hundred pounds). To find the Ubuntu option, I had to go out and search for it manually. It’s not listed under ‘Operating System’; instead, this seems to be a pseudonym for ‘How much do you want to be ripped off today?’, allowing you to move from the cheaper Home Premium version of Vista up to the ‘Ultimate’ version, and also offering a copy of Windows XP for an extra 10 pounds, should one version of Windows not be enough to satisfy you. They also insist on bundling a copy of Microsoft Works (I assume that’s meant to be sarcastic?). The equivalent Ubuntu machine had a lower specification for the same price, yet MS must be getting a cut of the Windows deal.

If GNU/Linux is going to have any chance of competing on the desktop, then we first need an equal playing field. And that doesn’t include Dell ‘recommending’ Windows Vista and hiding other options away, so that they are only found when people actively go looking for them. Microsoft are only doing what they can to improve their own business and please their shareholders. The problem is that companies like Dell and our governments let them do so, and, in the process, any hope of a free market is destroyed.

In the end, we went with the Windows version simply because we’d have been short changed otherwise. There was no guarantee that Microsoft weren’t getting something out of the Ubuntu desktops too, given the lack of a clear price advantage, and we’d still have had to replace it anyway (I’ve only ever found Ubuntu bloated and slow — maybe this is why it’s winning over Windows users?). Had I been purchasing for myself, I’d have took the third option of not purchasing a machine at all and instead writing to Dell to let them know why they just lost a sale.

Contrary to the popular expectation, I think it’s the existing Windows ‘experts’ who are the problem, the people called round to fix a misbehaving Windows install because they know the right buttons to click. More naive users are usually happy if they can achieve what they want to do. The machine was for my sister, who pretty much insisted that I install GNU/Linux on it when it arrived
and she’s now happily running Fedora on it. Had she stuck with Vista instead, she’d probably have had to spend the same again on applications, whether that be in some monetary form or in time spent searching the web. As it is, everything she’s needed so far is in Fedora and available at a few clicks. Plus it’s Free software, so if she finds and reports a problem, anyone is free to fix it; there’s no reliance on some all-powerful vendor.

Clearly there’s still a lot of room for change. The industry needs to stop avoiding alternative operating systems for fear that someone might run into some incompatibility or other, but instead questioning why these incompatibilities exist in the first place and to aim these questions in the right direction; at the people providing broken non-standard websites, proprietary document formats and Windows-only applications like the BBC’s iPlayer. The ‘main thing to note’ when purchasing a Ubuntu machine from Dell is not ‘when you choose open source you don’t get a Windows® operating system’. A lot of people probably don’t even know what one of them is. The thing to note is that you’re being charged more for less. It may be better, but that doesn’t mean it should cost more. In fact, a GNU/Linux operating system doesn’t have to cost anything — so download and try one today, and feel free to share it with your neighbour.