I published a new article entitled A better underline for Android on Medium. I recommend you read it if you care about typography or if you are just curious about interesting ways to use Android’s graphics APIs.

A better underline

A better underline for Android

1st timelapse attempt: Monument Valley

Antelope Walls

Antelope Walls

Super Powers

Mission Super Heroes

Leica M8

Leica M8

I will be giving two Android talks this year at Devoxx, one during the University Days on Tuesday morning and on during the conference proper on Thursday afternoon. I will also talk about cartoon animations with Chet Haase on Wednesday afternoon. If you’re at Devoxx this week come by and say hi!

Android at Devoxx in Antwerp

Adobe just released Camera Raw 5.4 (and even more importantly for me, Lightroom 2.4) which adds support for Hasselblad’s RAW files. I’ve been wondering for a while when this would happen and I’m glad I won’t have to use FlexColor to export to DNG before being able to see my pictures in Lightroom.

Thanks Adobe

Android is still eating away all of my spare time but I really hope to be able to blog again very soon.

Still Alive

Following today’s event, Apple just published the announcement of an update to .Mac, their web-based storage and sharing solution. Previously limited to 1 GB of data, including email and WebDAV, .Mac now offers 10 GB of storage.

I am very excited about this announcement as it will make .Mac even more useful to me. I use it to store all my email (IMAP), address book, bookmarks, calendars, some public files (WebDAV) and backup the most important files from my computer. 1 GB was more enough for my email but my files felt a bit cramped.

I always liked .Mac for the IMAP account and the great webmail interface, and it has just gotten better.

.Mac Now With 10GB

Today was my last as an intern at Google. It was also my last day as an intern ever. I really enjoyed my time at Google and I love the project I was working on.

I’m also happy to say that I accepted Google’s job offer and I will come back to California in a couple of months. I am finally starting my career! This is exciting :)

Leaving Google, Back to Google

JavaOne is over but I am still very busy so please be patient if you sent me an email about JavaOne demos. I received many requests and I will do my best to reply to each of you as fast as I can. Thanks a lot to all of you who sent me feedback about our JavaOne sessions, we really appreciate it!

Drowning In Mail

I am trying to purchase a license of Adobe Creative Suite 3, and more specifically Adobe Photoshop 3. Because I am still a student, I am technically entitled to purchase an education license of various Adobe products.

As usual, and that’s perfectly normal, there are certain restrictions to this. My problem is the following: I am a student in a French university but I am currently in the US for a few months. As such, I would like to purchase Adobe products on the US education store rather than on the French one. Unfortunately, the web site does not provide clear information, at least to me, as whether this would be possible or not. That’s why I tried to contact Adobe customer service.

My journey started by calling the customer service on the phone. After waiting for about 15 minutes, I just hung up. That’s the first time I actually wished there was a robot voice telling me something along the lines of “your call is important to us, please hold until we can take care of you.” I then used to form on the web site itself. After three business days (don’t promise a reply in 24 hours guys ;-) I got a nice but useless generic email telling me to call the number I already tried. This lead me to the third option, the direct chat. A nice and polite guy acted as if he was trying to help me but all he could tell me was to visit the web site, which I already did, thank you. After several useless questions and long pauses, surely to make me think he was actually looking for an answer, he just told me to call the customer service on the phone.

I called again. Waited for 10 minutes. Hung up. I called back, this time choosing another option (“Purchase Adobe products”). This time someone actually answered after 5 minutes! He was really polite too. But in less than 30 seconds he told me to call the number again and choose the option that already led me to death by elevator music twice. Hung up. Called back. Waited for 10 minutes. Hung up. Cursed in French. Opened my trial version of Photoshop CS3 to process some personal photos.

I guess I should just try to order the product and see how Adobe reacts when I fax them a French student ID. I know that the money I would spend on their product is insignificant for such a large company and that I am only one, non-business user. But still, I wish it was easier.

And if they don’t let me purchase an education license? I’ll just buy a regular license; their stuff is too good.

Adobe Customer Service

Every country, every culture has its own peculiarities, which may sometimes seem rather odd, if not utterly insane, to foreigners. As a French young man, there is one thing that I find disturbing about the United States of America and that I had long forgotten until last week.

On my way to California, for yet another, and hopefully last, internship, the fine gentlemen of United Airways presented me with a meal that brought back dreadful memories about US way of life. That meal contained broccoli.

I hold no grudge against broccoli as such. It is, after all, just an ill-colored variation of a cauliflower, which tastes just a bland. And yet, America seems to crave broccoli. It’s been a week since I landed in the Land of the Free and Home of the Brave, and I have already encountered these little greens countless times. That is, at least once and probably no more than four times. American restaurants seem to know of only two sorts of vegetables: broccoli and meat.

I would be more than happy to overlook this distasteful choice but broccoli farmers apparently possess a monopoly of some sort in this country. See for yourself. Go to your favorite supermarket and count the number of frozen meals that contain broccoli. Then count the number of varieties of frozen broccoli you can choose from.

Supermarkets have more sorts of frozen broccoli than us French citizens have swear words. And believe me, we do have a lot of them, bordel de merde. Can someone explain this to me? Is it because broccoli looks so weird? It sure does make me think of little green fellows with large and funny hats.

I am flummoxed.

Little Greens


Mood Swing

There’s been quite a lot happening in the Swing look and feel space recently. While Synthetica continues to improve, we’ve seen the A03 new look and feel pop up, new themes for Substance and I discovered JTattoo.

If you know other new look and feels, or know about other cool new features in existing look and feel, drop a comment!

Look and Feels Galore

Curious Creature is an upgrade of my previous blog, hosted on JRoller. There’s still a lot to be done (to be hype, let’s consider this blog a beta) and you’ll probably see more things coming up during the next few weeks.

You can already check out my photos. I will try to set up the software pages as soon as possible. I’ll show my coolest Swing demos, among other things, on that page. Last but not least, I’ll try to create my own theme for this web site. The current one is okay but it’s not what I had in mind. Besides, its HTML code is a mess (do not try to XHTML-validate this site please ;-).

I hope you enjoy Curious Creature. Do not hesitate to post a comment to tell me about anything you would like to see here. Suggestions are most welcome!

Welcome to Curious Creature

After many parties and long meals, I am finally catching up with the rest of the blogosphere and I just discovered that Alexis tagged me. Here are five little known things about me:

  • I can't sleep when my cupboard's door is cracked open ;
  • I once was a Microsoft .NET Most Valuable Student ;
  • I followed German course at school for 6 to 7 hours a week, for seven years and all I can say today is “Ich möchte gern ein bisschen Kuchen essen” (which is more than enough to survive in Germany anyway) ;
  • I learned programming on my 9 years old brother's Vtech Genius when I was 15. It was on new year's eve at some friends of my parents and the evening was so incredibly dull that I preferred to start writing BASIC applications on a 14×3 characters screen ;
  • I once acted in a play written by a friend of mine. That's what happens when you agree to write a web site for a bunch of artists.

I'm now tagging Richard, Chet, Joshua, Scott and Hans.

Five little things

My internship at Sun Microsystems within the Swing team has come to an end. I'm taking the plane back to France tomorrow afternoon. I have spent the most amazing year at Sun working on things that I love with some of the most wonderful people I have ever met. Hopefully I'll be back there very soon. Time will tell!

Back to France

I'll be offline for the next two weeks. My best friend is coming to the US for the first time and we'll just hit the road. I should have really cool pictures when we come back. And after that I'm going back to France for a day. See you soon :)

Gone For Two Weeks

I wanted to show you something today but it'll have to wait since I had a very rough week end. I spent most of my week end in the Death Valley and in the car (I drove about 1200 miles).

Now the rough part is I had a huge car accident. I lost control of the car and after spinning on the road it went into the desert where it rolled over several times. The car is completly wrecked.

Anyway I got very lucky because I only have a small bruise on the knee. It just took me one more day to come back home :)

Rough week end

I turned 23 today. That means I still have dozens of years to do cool things \o/


It is now time to tell you my darkest secret: I am a Microsoft MVS (Most Valuable Student). Seriously.

My Darkest Secret

Ok, I’m back from the Alps, I finished my article for Login: (a french computing magazine) and I finished my article for the Java Developer’s Journal (stay tuned :-). I should have more time now to enhance previous demos and build new ones. I will also be working with Craig on SwingFX so that you’ll be able to get cleaned-up stuff you can use in your applications. I am also working on something which could turn out to be great (hint: it will be printed). Anyway, don’t you wish you were in the Alps with me? The following pictures have been taken during the last three days of my stay in Morzine:

Back to work!

You can WebStart the demo or download its source code. Only the and files can be used freely without any restriction. Contact me for the other files.

UIs can be very annoying, especially when they seem to be doing something but they don't want to tell you what. Worse, some don't even bother telling you how much time they will need to complete the current task. As a user I experienced this way too often. As a programmer I know how hard it can be to determine the duration of a task.

That is why some applications, like Mozilla's installer, use an infinite progress bar. This kind of component ususally looks like a standard regular bar but act a little bit differently. In Mozilla's case you can see a rectangle bouncing within the bar's bounds. I've also seen infinite progress bars acting like regular progress bar but going backward once filled or starting over again. Although the infinite progress bar is a good idea, these implementations suck. There is no way for the user to understand at once that the progress bar is in fact “infinite”.

Hopefully, there are easy way to work around this limitation. I've built two examples to show what kind of infinite progress components can be created with Swing. The first one simply shows glowing picture and label:

I really suggest you to run the WebStart demo to show it in action. Once the application is started, click onto View Sale and then on the Search button. The source code of this effect lies in org.progx.salesmanagers.ui.AnimatedPanel. Such a panel is made of a message and a picture. An animation thread changes the transparency of the message and the brightness of the picture back and forth. The source code is fairly easy to understand.

This first solution is nice but not as powerful as it could be. In this example, the UI remains active during the animation. A complete program should take care of disabling all the “dangerous” components. My second solution relies on the glass pane of the window. As you might know, a glass pane is a component sitting on top of all the other layers of the window, especially the content pane. By intercepting all the mouse events in the glass pane, you block all the application (key events should also be handled to prevent the use of accelerators).

I also chose another way to render an infinite progress bar. Inspired by MacOS X, org.progx.salesmanagers.ui.InfiniteProgressPanel draw a circular set of rotating bars. And guess what? A circle is just the perfect shape to show the infinite property of the progress components. Finally I added a white veil to show the UI cannot be manipulated anymore. Here is what it looks like:

You should really try the online demo for this one :) Once the application is started, click onto New Sale and then on the Perform Sale button. You'll notice the fade in and fade out of the panel. The default constructors allow you to set up the transparency of the veil and to change the duration of the fade in and fade out animations. The code uses some Java2D operations but remains easy to understand.

One remark though: the InfiniteProgressPanel was written very quickly and the code is a mess, particularily the animation thread (which should have been splitted into three threads). The sleep delays used in the animation thread tend to consume a lot of processor power on not-so-recent computers (P4 1.5 Ghz). It definitely needs some tweaking and optimization :)

Wait with style in Swing