-->

AWT peer cleanup and docs

May 6th, 2008

The last couple of days I spent going through the AWT peer interfaces and cleaning them up (get rid of all the duplicate and deprecated stuff there), and have now started to document the stuff. The first results can be found here. For now I only have ButtonPeer to ComponentPeer, but I will add the missing stuff during the next couple of days, and I will also add all other classes that are necessary and/or helpful (like Toolkit, GraphicsEnvironment, and some internal classes).

I’m also very excited about Mario’s work with JOGL and Escher. This is so amazing to see (start) working.

-->

Neil Young

May 2nd, 2008

This guy is always good for a surprise. In the past he has made records in a very wide variety of styles (and still be true to himself). Country, folk, rock, blues, punk, soul, grunge, electro, you name it - and he surely does something completely different. He’s always been very conservative with technology (except some funny experiments in the 80s), insisting on analogue recordings and media whenever possible, etc. Why am I telling you this, and do so on an otherwise Java-centric blog? Well, Neil Young joins Rich Sands Green for a keynote at JavaOne. The article claims that they are going to announce an interesting media project. This sounds really weird. This old analogue fanatic doing some digital multimedia stuff? With Java? OTOH, I really think he must be seriously interested in this, he has never been the guy that you can pay into talking about something which is only interesting for any company. So, this is going to be interesing. I really hope somebody makes a video of it. I wonder what that project is all about? A free replacement for javax.sound? I doubt that Neil Young would have any interest in this. Makes me wonder if all this has anything to do with Mario Torre playing Neil Young at last FOSDEM, while presenting his javax.sound implementation? :-D

On a related note, I will hopefully attend a Neil Young concert this summer (July, 9th) in Oberhausen. Would be fun to meet people there.

To celebrate all this news, I have a Schmankerl for all Neil Young fans and everybody else. I hope the RIAA won’t kill me for this. Here I have for you Sample And Hold. This is a very special and song. (And very unconventional for him. Back then, Geffen Music sued Neil Young over 3 million $$$ for unrepresentative music.) While it seems to hide under a wall of digital sound, it is still one of the most emotional and touching songs. It is about his heavily disabled son, trying to learn stuff on some machines. This version is the LP version, on the CD they released a completely different mix (but I like the LP version a lot more). After all this news, I wouldn’t be surprised if Neil Young released a techno or industrial album this year :-D.

Keep on Rocking In the Free World!! Yay!

-->

Caciocavallo fonts

April 17th, 2008

Another day, another non-existent problem solved :-D Seriously, the font problems I’ve seen yesterday have been kindof bad luck. Wrong font has been chosen by the pipeline, one that doesn’t render smooth as bold font. Plus some small problems in OpenJDK and/or FreeType regarding rendering this font, etc. Today I tried the Font2DTest program of OpenJDK and most fonts look just fine:

This is Bitstream Vera plain without anti-aliasing. Pretty smooth. The font we’ve seen yesterday has been FreeSans bold:

Which also looks slightly crappy with OpenJDK’s default pipeline:

BTW, it’s really amazing how well Swing applications already work. There are only very few glitches (no mouse drag yet for example) and performance seems reasonable (not quite on par with the OpenJDK X11, but still). And all this with minimal effort on my side, I really only implemented a handful of primitives and a little infrastructure. Yay OpenJDK Java2D architecture!

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.