lundi nov. 08, 2010

Did you know?

• that "Java for Business" has offered Java 1.4.2 and Java 5 (both EOL'd) support to paying customers for the past 3 years ?
• that Doug Lea committed to working on OpenJDK ?
• that Oracle proposed the Apache Foundation and Red Hat for the JCP ratified seats ?
• that JCP membership is free for individual members ?

just sayin'...

lundi août 30, 2010

Back from Brazza

I was fortunate enough to visit Congo Brazzaville (just celebrating their 50 years of existence) to present at the jCertif conference, probably the biggest Java event in central Africa. I was expecting an adventure and an experience. I wasn't disappointed. So of course this is Africa and I probably shouldn't be surprised to see children cross the runway only seconds after the plane had landed. The food (fish, meat, chicken and bananas!) was great and the crowd welcoming. I had had a taste of what to expect when chatting with Max Bonbhel, the organizer of the conference, a leader of the CongoJUG (great logo btw), and overal an entrepreneur.

Max had arrived a week early (he lives in Canada) and had to find a venue, sponsors and take care of all the logistics. He did great with the event finally taking place in the National Center of Congress with the support of the ministry of New Technologies and major telcos as the sponsors. He also managed to get the two of us to appear for an interview on national TV the day I landed to promote the event (and our respective topics).

Congo Brazzaville seems to be, like other countries in this part of Africa, (finally) experiencing a shift to broadband with a fiber backbone coming up in 2011 and the younger generation starting to slowly take advantage of the new IT opportunities this will bring. Infrastructure is still a big concern with the capital city still experiencing unplanned and \*planned\* electricity outages (not a good idea to be in the elevator at that time). For anyone telling me that Internet access and bandwidth are no longer a problem anywhere in the world, I can now share that downloading a 50MB GlassFish archive will take a good 8 hours (download size does matter here, CDs are welcome), that SVN worked sporadically for me (if at all), and that watching streamed video is just not an option. Internet access is still very expensive and you are asked to think twice about bandwidth. This obviously makes it still a bit hard to do business on the Internet but with infrastructures improving by the day the country is waking up to the possibilities.

The conference itself was held in an impressively large room which I understand is where the parliament meets. Access to the conference wasn't free but costed only about the price of a softdrink. About 300 people participated, some coming from neighbor Congo (CDR), others flying from Togo, Kenya and other countries. Max kicked off the day with a talk about web 2.0 and the impact it will have from a social, technical and business point of view. Mike Levin (freelance consultant, Swampcast podcast,, ...), straight from Florida and also a JUG-addict (he runs no less than 4 JUGs) then got down to some more details about the technical building blocks of web 2.0 development. It was great to meet Mike (we stayed in the same hotel) as I could help him with his French (the official language here) and he'd teach me the lingala (local dialect) words he had learned (Keetoko!). We also found out that we had a great deal of people in common. Check out his post about the conference.

The next speaker was Horacio from Togo talking about Talend. His talk was a great balance with a few slides to set the stage on ETL's and about a half an hour demo which is usually too long for people to follow along but this one progressed very nicely. I then presented on Java EE and GlassFish (slides), trying to start slow for the people that hadn't used it before but also covering Java EE 6 new features for the more advanced crowd (I got some pretty advanced questions during lunch). Finally Stanyslas from Kinshasa presented the NetBeans platform for building rich applications and in particular the RAMS (Refugee Assistance Management System) application he's building for the United Nations' HCR (refugee organization). A good didactic talk, NetBeans Platform extraordinaire Geertjan would have been proud!

The event continued for another 3 days of training and preparation for the Java Certification. This is free training and the deal is that if you attend (80 people showed up on the first day) you need to train others yourself in the next 6-9 months. This is just a moral obligation and training a couple of people over a few hours is good enough. I think this is a great initiative and a great way to build communities, something that feels pretty natural to the people I've talked to while in Congo Brazzaville.

While writing this it occurred to me that I've now traveled to all main continents (still working on Antartica) to talk about GlassFish!

vendredi juin 04, 2010

A brief survival guide to producing screencasts and podcasts

As part of my job in the GlassFish team, I've been producing a number of screencasts (recent ones for GlassFish 3.1 Milestone 1) as well as podcasts and a number of people have asked me what tools and process I use. This should by no means be considered as professionals created content, but I consider the work as "good enough". Warning - I use a Mac and thus some of the following may not apply.


I clearly split the screencast process into recording and post-processing (the bulk of the work in my case). In my case I bought iShowU HD ($29.95) which I find simple and effective. It produces a number of different formats with compression such as MPEG 4 or H264. It does not produce flv/flash which I think is a bad idea anyway (dead-end format, hard to convert to anything else, let the publishing platform do the heavy lifting, see last section). Another popular choice is ScreenFlow but it's more expensive ($99), has zooming and other effects I find overkill (I stopped using animations in my slides years ago), and I wouldn't use its post-processing features since I simply use iMovie.

A precise script for the scenario is the first thing I work on. I then record the demo with minimal use of the pause/resume feature (and would rather start over when something went wrong). Most of the time I don't record the entire screen. A typical setting is MPEG-4, 25 frames/sec, 768x432 with a fixed mouse mode. The resulting file is about 7.5MB per minute recorded. I don't record the system audio and do a voice-over once I'm happy with the length and pace of the edited video (which often involves cutting down a number of lengthy parts). I usually use iMovie to add small (8-10 sec) intro and outro images with a title, logo and URL.


Most of the podcasts I publish on the GlassFish channel are interviews that I spend a little bit of time preparing. I usually go by a variation of the list of questions that I have written down (and sometimes shared with the interviewee). The ideal interview setup is when each person can record its own channel. When I'm remote this is possible if everyone has a descent recording tool (audacity for instance) and microphone (I use the buit-in one on the mac book pro) but it's often nice to be in the same room for a better conversation-like result. Podcast editing can be a challenge when people talk at the same time on the same channel. I also do a number of interviews over skype with this call recorder ($19.95). In this case I can later split the channels which is great for post processing (and I don't need to wait for people to send me their audio file...). The downside is that the quality is only as good as the skype conversation itself and that the splitting is done into two channels: me and the "other ones" (when talking with multiple people, they need to have the same level and shouldn't speak at the same time).

It takes me about 2x to 3x the recording time to do a full editing (leveling, intro+outro, removing hum's, making it more dynamic when possible, ...) and this is all done with Audacity (open source). I usually place each channel left and right (+/-40% iirc). I then export the audio as MP3 (and remove the rather large files produced by the tool once published). The painful part for me is the metadata: file name, podcast name, show notes, picture, etc... I do this with iTunes but that requires still too many clicks IMO.


I try to create portable formats accepted by many other tools and services for publishing and conversion if necessary. For audio, mp3 is a no-brainer and for video, it's pretty much anything except flash (once published both screencasts and podcasts are often made available using flash players anyway).

My screencasts now usually go out to YouTube. The distribution is large, embedding a player is trivial, the publisher tools are simple, and the reporting tools descent (# viewers, geography, ...). I usually also make the larger original file available for offline viewing (and sometimes reuse it for time-constrained demos).

Podcasts are a little bit trickier to publish since I have the GlassFish Podcast available on the iTunes store and a more general syndication feed. I use feedburner which has a nice podcast feature to identify the enclosure (mp3) and make it podcatcher-friendly. It also has tools to help you troubleshoot a number of issues you'll probably face when starting out. I publish the podcasts on which is powered by Apache Roller with direct link to the mp3 and a flash player for in-place listening. The Feedburner tracking features are nice and a bit more detailed than the Sun mediacast facility where I upload the mp3 file.

Just Slides

If you're trying to push out a presentation content, you probably should look at slideshare which has an updated player, a download option, and a slidecast feature that's quite easy to use (record on the fly or upload mp3 and chapter manually). Of course if you're a JUG or if you're looking for an even better user experience, there's also parleys.

vendredi mai 14, 2010

GlassFish and add-ons now available for download from Oracle eDelivery

As part of the move to the "Oracle way of doing things", GlassFish and its add-ons (the GlassFish Enterprise Manager, now rebranded as GlassFish Server Control) are now available from Oracle's onestop download site Once you've logged in, follow this link (or click on the image) to get to the list of Sun downloads.

Until the release of Oracle GlassFish Server 3.0.1, the downloads still use the older names. There are 4 downloads for the add-ons, three for v2.1.1: SNMP, Performance Advisor, and Performance Monitor (description, docs) and an additional one for GlassFish v3: Monitoring Scripting Client (description, docs). These add-ons were previously only accessible to paying customers. Now you can download them for an evaluation and in the case of the 3.x add-ons, they will be bundled in the next 3.0.1 version.

dimanche mars 21, 2010

Session Java EE 6 (JPA 2 et JSF 2) à Solutions Linux (Mars 2010)

Solutions Linux cette année était pour moi l'occasion de présenter Java EE 6 de manière un peu différente avec Jérôme Molière (il n'y a vraiment que des Jérôme dans ce métier! ;). Plutôt que de proposer en 45 minutes une recette de cuisine sur tout ce qui est nouveau, Jérome s'est concentré sur JPA 2.0 et ses nouvelles capacités de caching alors que j'ai de mon coté couvert JSF 2.0. Dans le temps imparti ca reste un survol dont le but est surtout de donner envie aux participants d'aller regarder de plus près. Voici la présentation utilisée :

Jérôme m'a promis travailler sur une démo pour la partie JPA 2.0. Dans les prochains jours si tout va bien!

Pour le reste le salon s'est déroulé sans Sun (stand Oracle), Novell (qui avait habituellement une des plus grands stands), RedHat (ils se sont passé le mot?), mais avec Microsoft (grand stand rempli d'hôtesses). Quelques discussions intéressantes mais clairement pas un cru exceptionnel.

vendredi janv. 22, 2010

Almost a Chrome convert

It's been a while since I used Firefox and I'm really not impressed with the 3.6 release. It's interesting to see how adoption by the masses often happens when technical excellence is long gone.

I've been a Safari user for the most part and managed to live very well without any plugin (which was the real test for me). Safari is just faster and so much lighter-weight than FireFox. But Chrome has been my default browser for the past couple of weeks and so far I really like it. It's as fast if not faster than Safari, the integration with Mac OS is certainly as good, and I have yet to experience a crash. I am missing a few features though :
• how can I easily create a link on my desktop for the current URL? On Safari I was simply drag-n-dropping the bubble icon from the location bar.
• how do I see/use syndication for the current feed. Again, very easy in Safari. No obvious equivalent in Chrome.
• how do I configure the thumbnails on the "New Tab" view?

jeudi janv. 21, 2010

Move to Java EE 6 and slash your number of lines of code by more than half

My first reaction when I started to help Paul and the team run and test Bill Burke's ex11_1 sample on GlassFish v3 was that this code could be refactored to be much simpler and more portable with Java EE 6 and JAX-RS 1.1. This wasn't the best approach to show the portability of existing JAX-RS code so the porting happened with minimal (really small) changes. Yet, I wanted to share the simplifications here.

Remove web.xml altogether. The Jersey servlet no longer needs to be declared and mapped, and the EJB local references now have well known and portable names. This is replaced with a @ApplicationPath("mypath") annotation placed on the ShoppingApplication class.

Put those EJBs in a WAR. The initial project has three artifacts: WAR, EJB jar, and a global EAR, each having a separate Maven pom.xml. This can all be boiled down to a single WAR file.

Morph resources and Beans into a single class. The dichotomy between \*Resource and \*ResourceBean is no longer necessary. A resource can simply now be a transactional EJB by adding the @Stateless along side the @Path annotation.

Test. This is made easy by the simplified packaging but essentially is the same as what's described here (uses the GlassFish Maven plugin).

The end-result has 60% less lines of code (and I'm sure you could get even remove more without hurting the code).
These are all simplifications made possible by Servlet 3.0, EJB 3.1 and JAX-RS 1.1 (all part of Java EE 6).

jeudi déc. 24, 2009

My MacOS applications dream team

With business slowing down I thought I'd finally spend the time to upgrade to Snow Leopard. Unfortunately my MPB drive crashed during the upgrade. I did have a TimeCapsule backup but some stupid reason I decided to exclude applications (mainly because I the user data for those apps). So here I am reinstalling what I thought would be a rather small number of applications. For the record, here's the list (in no particular order) :
OpenOffice 3.2 RC1, waiting for the January release and still considering Keynote (loads of ODP content that I'd need to convert)
NetBeans 6.8, for the first (and limited) time I'll have a single copy of the IDE.
GlassFish v3, what else?
Eclipse Tools bundle for GlassFish
JarInspector, small but very useful except it no longer runs on SnowLeopard since the Cocoa binding for Java were removed :(
Firefox 3.5.6, still not my primary browser but at least it prefers HTML over XM (I've actually been a happy Chrome user for the past few days...).
Audacity, ugly UI, great features
TextWrangler, trying this to replace un-maintained Smultron
• The very fine VirtualBox
SJphone, another ugly UI and complex config.... (x-lite 4.0 beta just hangs up all my calls after 30 seconds)
Flash 10
Vodafone Mobile Connect, MacOS is an after-thought for this 3G USB modem but getting better
iStat Menus
Tweetie, been happy with this Twitter client for a while now
NetNewswire, it's been free for a while and the sync to Google Reader saved my day
iShowU, the video grabber that I use
Growl, not sure reinstalling this disturber was the smartest thing I did
DropBox, I really like this service and the app does what you expect
VLC, what else?
jCalSync, so others know what I'm up to (and I get to use the nifty Mail/iCal/Contacts integration)
Transmission, not doing much bittorrent lately but useful once in a while
Call Recorder for Skype, simple and effective (at least for voice)
• Almost forgot: The Gimp for Mac OS
Adium, although I'm now hitting this bug:(
update: I see I forgot to add jumpcut (find it very hard to live without clipboard buffering now)

That's it so far (I'm sure I'll remember about smaller ones). No more Cisco VPN (using the built-in feature), and having an iPhone helped me recover calendar and contacts data. Overall the day could have been worse.

jeudi déc. 03, 2009

Screencast - Lombok meets NetBeans (and Java EE)

If you haven't heard of Lombok, check out the short screencast on the project's home page and decide for yourself if this is brilliant, an ugly workaround for the lack of properties in the language or just useful...

Lombok creator Reinier announced that Jan Lahoda had just done most of the work to integrate it with NetBeans. You'll need NetBeans 6.8 RC1 and above and these Lombok bits.

I quickly put together the following 5-min screencast to show it in action in the context of a Java EE 6 web application. This use-case (I'm sure you can think of others in Java EE land) shows a JSF 2.0 page (using facelets) with code completion for properties that are Lombok-provided (there are no getters/setters in the managed bean). Unfortunately I forgot to bump up the font size so it might be a little hard to read. Hopefully the audio will help you follow the progress.

The 15MB offline version (m4v) is available here.

vendredi nov. 06, 2009

IzPack and GlassFish v2.1.1

My friend Julien announces that IzPack 4.3.2 has just been released.
As a cherry on the cake, he also refreshed the GlassFish v2 IzPack installer to v2.1.1 which was just release a few days ago. Thanks Julien!

mardi sept. 08, 2009

Y'en a qui n'ont rien d'autre à faire...

Facebook rendrait intelligent, Twitter idiot à moins que ce soit le contraire...

mardi août 04, 2009

While away, starting with the hot-off-the-press part -

• Small (and welcome) Java EE 6 delay to accomodate JSR299/JSR330 (and to include both in the platform). Expect GlassFish v3 to shift as well.
OpenDS 2.0 released - full Java LDAP server now ready for prime-time.
Web Stack 1.5 released. More than an optimized and integrated (L)AMP stack it also buys you support for Hudson and uses IPS (like GlassFish v3) for fully relocatable installs.
NetBeans 6.7.1 shipped. Now with JavaFX and lots of bug fixes (including some related to Maven support). You can simply update an existing 6.7 install. 6.8 will have Java EE 6 support and recent GlassFish v3 as the default (Milestone 1 is just out).
JRuby guys moving to EngineYard (and confirming the GlassFish praises).
GlassFish v2.1 patch 3, for paying customers.
NetNewsWire now has web version via Google Reader

mercredi juil. 15, 2009

Five years of blogging

Over the past five years my blogging have been less frequent. This is probably due to my focus on GlassFish (which still has me cover a lot of ground), to the other group blogs I co-author, and because of the tweeting I do. I'm starting to think that twitter is to blogging what email is to mail - showing just how lazy we all are.

mercredi avr. 01, 2009

Grails 1.1 for GlassFish v2 (via the UC)

Vivek and team are bringing you the recently released Grails 1.1 via the GlassFish v2 Update Center (GLASSFISH_INSTALL/updatecenter/bin/updatetool).

mercredi janv. 21, 2009

BarCamp Java à Paris le 31 janvier

Après les éditions précédentes organisées par octo, voici un troisième BarCamp Java à Paris organisé par Valtech dans les locaux de Sun à Paris le 31 janvier. Inscriptions: Be there or be square! I'll be square :(


This blog has moved

Alexis Moussine-Pouchkine's Weblog

GlassFish - Stay Connected


« juillet 2016

No bookmarks in folder


No bookmarks in folder