-->

Caciocavallo prototype

April 16th, 2008

Today I finally solved a non-existant problem, and can finally show some stuff from the OpenJDK challenge work:

The demo already works quite well and performance is reasonable. Of course, there are still many quirks and etches, and the fonts look like crap. Not sure yet, why the fonts look so ugly, I have to find this out. This is using OpenJDK rendering pipeline and does all the rendering in pure Java (over Escher).

-->

A cup of tea

April 16th, 2008

As Mario already mentioned, there has been some Escher goodness during the last couple of days. Both of us have been working on fixing Escher’s GLX implementation (which became broken after my big overhaul of the protocol transport layer). Today I went through the large parameter stuff in GLX, which is so horribly weird, I think I have some gray hair now ;-) Makes you wanna put a // NEVER EVER CHANGE THIS CODE AGAIN in there. Anyway, this means that textures are working now, I think this is pretty cool and the last big broken thing:

A cup of Escher teaTextures in Escher

Phew. I think now we can start with the JOGL layer on top of Escher, which hopefully enables us to run Jake2
:-D.

-->

Introducing Caciocavallo

April 8th, 2008

A while ago, our (Mario and me) project proposal for the OpenJDK Innovators Challenge has been accepted. Today I’d like to announce the actual project, codenamed Caciocavallo. This project will cover a couple of things:

  • An implementation of the AWT Toolkit interface (java.awt.peer and a bunch of classes in java.awt), that doesn’t make use of Sun internal classes.
  • An implementation of the AWT Toolkit interface that subclasses Sun internal classes and reuses most of the infrastructure. (This is named Caciocavallo-NG)
  • Patches to OpenJDK to enable the above :-) Plus better documentation, etc.

The toolkit implementations will be based on the great Escher library. So far we have (somewhat) working prototypes for both the ‘external’ and ‘internal’ implementation (that’s how I call them). Also, I reworked a significant portion of Java2D, to separate SunGraphicsEnvironment and FontManager. So far, the FontManager class was a final class, with most of the platform dependent font stuff in the subclasses of SunGraphicsEnvironment (urgs), and some more platform dependend stuff in FontManager itself (uuuuuurrrgs: look into FontManager.populateFontFileNameMap()). I changed it so that FontManager is an abstract class, with platform specific pieces in subclasses. SunGraphicsEnvironment doesn’t have any font stuff anymore. Works like a charm already.

Until the project is setup within OpenJDK (soon), all the code resides on my server. There’s caciocavallo and caciocavallo-ng (the external and internal toolkit implementation respectively) and a HG patch queue (what a nice feature of HG that is!!) for OpenJDK.

BTW: I spotted a fun part in the affidavit (new word learned) of The Challenge:

I understand and acknowledge and hereby waive and release any and all rights, demands, losses, liabilities, claims and causes of action whatsoever which I may now or hereafter be entitled to assert, including, but not limited to any death, injury, loss of enjoyment or other harm or loss of any nature whatsoever caused by, contributed to, or arising out of any prize awarded to me in this Contest.

I guess this means I can’t sue Sun when I get a heart attack from the price money, or when I don’t enjoy hacking OpenJDK anymore afterwards. Too bad ;-) Ok, now on with hacking (so many things to work on parallel, I need some clones of myself)

Caciocavallo at FOSDEM 2008

Wordpress/Debian woes

April 8th, 2008

Today I had problems with my Wordpress installation on my Debian server again. Somehow, somebody managed to get access to my Wordpress install and disable all the plugins, especially the Askimet plugin. Immediately, I got swamped with spam. I suspect that the Wordpress package in Debian stable is not really well maintained and vulnerable, so I upgraded to Wordpress 2.5 by backporting the unstable package. This was a very smooth process.

This is how it should work:

echo "deb-src http://ftp.de.debian.org/debian unstable main" >> /etc/apt/sources.list
apt-get update
apt-get build-dep libphp-phpmailer
apt-get source -b libphp-phpmailer
dpkg -i libphp-phpmailer_1.73-6_all.deb
apt-get build-dep wordpress
apt-get source -b wordpress
dpkg -i wordpress_2.5.0-1_all.deb

Following that, I went to the wp-admin page, performed the DB upgrade and everything was fine. Very smooth. (I did a mysqldump before thought, just to be sure)

So many things

April 5th, 2008

are going on right now, I don’t even have the time to blog for a while. Mario’s now working for aicas, which is super cool. Our proposal for the OpenJDK Innovators Challenge has been accepted (yay), which means we will be working on OpenJDK’s AWT, Java2D and Swing stuff in order to make porting GUI backends easier. We also dive into JOGL development, now implementing a JOGL layer on top of Escher. There’s a load of other stuff to do as well, the Jamaica 3.2 release is coming close, the Mercurial transition inside aicas has to be done, the Jamaica/OpenJDK integration too, customer stuff, etc etc. I feel slightly over-worked :-/

To make matters worse, my car decided today to go bonkers. Well, we were thinking about buying a new one anyway, so maybe we have to short-circuit that process now. Also today, Madeleine and Alba have become ill. What a shitty day. Luckily, a postcard from a friend of mine in my mailbox saved my day.

AWT on Swing

March 14th, 2008

Today I discovered to my surprise, that the X peers of OpenJDK also use Swing as painting backend for its widgets (as opposed to the Motif peers that use Motif or Lesstif or whatever). Unfortunately, this doesn’t seem to be done in a very reusable way (==hardcoded in the X peers), as I did with my own Swing peers in GNU Classpath. I mean, it is really nice to have this reusable, because then, implementing a new backend for AWT is basically only implementing the top level components and graphics stack. I wonder, if these could be merged somehow, i.e. the reusability of my Swing peers with the completeness of OpenJDKs X peers. Hmmm, this would have been another nice proposal for the OpenJDK Innovators Challenge….

Have I been hacked?

March 13th, 2008

Today I was notified by Google that they took one of my blog pages off their index. The reason was that this entry contained some hidden content which referred to suspicious sites about ViAgrA, whatever that is ;-). I cleaned this up quickly, and checked the database for more such stuff, but it seems only one blog entry was affected.

But this leaves me slightly nervous. This was not the usual spam comment. It was a modified blog entry. I wonder how that could happen. I usually keep my system up-to-date with regard to security patches (it’s a Debian box), have rkhunter and other tools running in cron jobs, etc. How is it possible that somebody sneaks in content in a blog post (XSS attack?)? The only thing I can think of is that there has been a vulnerability in Wordpress, and it got passed in during the time window until I updated the box (every couple of days usually). I’m still worried. If anybody has some hints what might have happened, and how I can be sure there’s no other weird things going on my box, please comment.

OpenJDK patches

March 13th, 2008

It seems like my criticism @FOSDEM has been heard. Since the OpenJDK repositories have opened up, I see much more traffic on the mailing lists. This includes code reviews, commit messages and everything. Very nice.

Lately, I posted a polished version of an older patch, and just now it has been commited by Alan. That was quick. Seems like OpenJDK is on the right way :-)

Neoangin

March 11th, 2008

Last sunday I took Mario and went to a funny concert of Neoangin in Karlsruhe. Neoangin is an amazing artist. He is also known as Jim Avignon (Neoangin is his musical incarnation, and Jim Avignon is his artistical incarnation). He’s making mostly electronical music with a small keyboard and a mini-disc player, and sings to this. Of course he also creates the stage decoration himself. He sells his CDs for 5€/copy and on the cover it explicitly states that everybody’s free to copy the CD as he likes. So I uploaded one song that I particulary like, the Land Of Banality. Enjoy!

Neoangin Tour 2008

Debugging native code with Hotspot and GDB

February 29th, 2008

The last couple of hours I struggled to debug a segfault some JNI code of OpenJDK. I could not get GDB doing anything useful with Hotspot. Until I discovered the following very useful command line option:

java -XX:OnError="gdb - %p" MyApplication

This fires up gdb whenever an error occurs, and sets up all the libraries etc for debugging. Very nice. Ideally you do this using a debug build of OpenJDK, so get get as much useful information as possible.