19 Dec 2005

Lava lamp

While our new lava lamp is a little bit frozen because of today's temperatures, I found this little desktop freeware: Lava Lamp i-Mate.
Really useful while waiting for a slow CVS synchronization ;)

Technorati tags:

9 Dec 2005

Google Maps - Now I'm afraid

Just take a look at the google maps javascript everything is named with a, b, c... scary!
Technorati tags:

Toronto's Mall

Funny to see a picture of a place I once went: the toronto's mall. Well, may be not the most interesting part of the city... but definitively reminds me memories.
This "daily dose of imagery" blog as always wonderful pictures.

1 Dec 2005

23 Nov 2005

Adding trackback feature

I recently discovered that blogger now support trackbacks.
So I turn on the "links to this post" aka trackback feature on all my posts.

22 Nov 2005

Transient in java

I also mix transient with lenient (because I don't use them often), so since we are in the "definition zone" today, here's the java definition of transient:
Transient instance fields are neither saved nor restored by the standard serialisation mechanism. You have to handle restoring them yourself.

and the english (not technical) definition:
  • one who stays for only a short time; "transient laborers"
  • transeunt: of a mental act; causing effects outside the mind
  • ephemeral: lasting a very short time; "the ephemeral joys of childhood"; "a passing fancy"; "youth's transient beauty"; "love is transitory but at is eternal"; "fugacious blossoms"...


Technorati tags:

Lenient in java

I never remember what does lenient mean? Hopefully google has the lenient definition ;)
You can find it in java with DateFormat, JXPath for example.

Technorati tags:

How To Write Unmaintainable Code

18 Nov 2005

Catch by Flickr!

Since my last post about technorati, I've been playing around with it.
Imagine my surprise when I discovered that flickr made a link beetween francisoud tag and an old flickr photo (on the right part of the screenshot)!


Technorati tags:

Technorati

I did it! I started to use Technorati tags system (at last) :)
Thanks to thomas for explaning me how to integrate them with blogger ;)

Some screenshots:



Technorati tags:

9 Nov 2005

Bill Gates vs Steve Jobs presentations

Interesting comparison between bill Gates heavy loaded powerpoint presentations and steve Jobs "zen" presentations.
The Zen aesthetic values include (but are not limited to):
  • Simplicity
  • Subtlety
  • Elegance
  • Suggestive rather than the descriptive or obvious
  • Naturalness (i.e., nothing artificial or forced),
  • Empty space (or negative space)
  • Stillness, Tranquility
  • Eliminating the non-essential

Apple history

Sylvain showed us this funny apple history site yesterday.
I'm not a Mac addict but that's funny to see old computer and what today's computers can do!

8 Nov 2005

Rails and JSF - JSF creator discuss rails and technologies'mavens

David Geary, who worked on core JSF, explains why he is looking at Ruby on Rails even if it seems to be one of JSF competitor.

I'm learning Rails and I feel the same way as David Geary about learning new tools:
I am a Rails convert, because first and foremost, I am a maven. I love to learn, and even more, I love to teach. And I absolutely love to learn new technologies.
I believe that both JSF and Rails have their place. JSF is better suited to conservative organizations with complex needs and Rails is better suited to folks who are willing to take some risk and whose needs are not as complex.
For me, Rails is currently shifting to mainstream, it will (or is already) a bigger success than Zope and may replace Php for rapid web development.
But I will not junk Java, I do love this language too.

I'll just use the one who suits for the context where I'm using it.

7 Nov 2005

Updated my blogger profile

Because of useit weblog usablity alertbox, I updated my blogger profile and added a photo (humm... may be not the prettiest...)

11 Oct 2005

At least a good XUL application

You need to use Mozilla or Firefox to see this.
A powerpoint style application in xul, that's the best example of the use of xul I've seen so far (except gadgets).
Move your mouse on top of the page.

7 Oct 2005

Only 7 718 jar(s)

Funny article about java developpers and there drive full of jars.
I only have 7 718 jar(s) on my office hard drive but I have 5929 *.dll files ;)
But I'm using this computer only since march...

How many do you have ?

28 Sep 2005

27 Sep 2005

Clean and neat

Yes sometimes Java can be neat and clean ;)
I was trying to extract a node value from an xml stored in a String, I made this little piece of code (and I like it). No tiedous try/catch handling, simple and clear (thanks JXPath):

public String extractNumberFromResponse(String responseBody) {
org.apache.commons.jxpath.xml.DOMParser parser = new DOMParser();
Object xml = parser.parseXML(new java.io.StringBufferInputStream(responseBody));
org.apache.commons.jxpath.JXPathContext context = JXPathContext.newContext(xml);

return (String)context.getValue("/my:jlogin/my:session");
}

22 Sep 2005

Forget DbVisualizer

Ok DbVis is nice because it does every database type.
But I wasn't easy to create a simple table with a primary key and an auto increment field.
Thanks to julien, I found MySql Query Browser only for MySQL (Download links for many OS)

It is so easy! I like it ;)

19 Sep 2005

Not as easy as it seems

I've been struggling with tomcat 5.5 under eclipse webtools for almost 1 or 2 hours:
  • moving jsp around
  • resarting tomcat
  • deleting parts of my workspace
  • deleting the whole workspace
  • recreating projects
and I'm fed up!

Things are not as easy at it seems.

It's like tomcat or eclipse keeps a cache of my jsp somewhere when I move them around!
Suppose I have /welcome.jsp, I move it to /pages/welcome.jsp ... http://.../welcome.jsp is still here ?!

It seems adding a parameter to [workspace]/Servers/Tomcat 5.5 Server @ localhost config/web.xml does the trick:
  • keepgenerated = false
But I not sure and I don't understand why...

16 Sep 2005

DbVisualizer

I'm trying DbVisualizer, its a nice little client for accessing databases.
Window installation went smoothly, cool!

Useful links:

Extreme Programming Explained: Embrace Change, 2nd Edition


Yes! Just got the 2nd edition of the "holy bible" of extreme programming.
I hope I won't be disepointed... see you in a few weeks for a review ;)

ISBN: 0321278658

15 Sep 2005

Font resizing in pixel

About 1 years ago, when fixing font size in px in css, changing letter size in IE wouldn't change anything...
I discovered that, under IE 6 SP2, it's no longer the case!
They must have changed this behavior in one of the SP x ?!
I can't find a link in google about it! (the best I can get is Standards and CSS in IE and W3C spec)

Now I can use px with no more accessibility problems :)

13 Sep 2005

Eclipse plugin for JSF

The eclipse foundation started a javaserver faces plugin.
It can be found on the eclipse site.
Too bad they are still at a draft stage, there is no update site available yet.

Eclipse update-site

Each time I'm looking for an eclipse plug-in, I try to find an update site to install and keep my plugins up-to-date...
So here's my favorite update-site list (I might add other in the futur):
  • hibernatetools - http://download.jboss.org/jbosside/hibernatetools/updates/development/
  • leipido - http://download.eclipse.org/technology/lepido/update-site/
  • rubyeclipse - http://rubyeclipse.sf.net/updatesite
  • tigris - subclipse - subversion - http://subclipse.tigris.org/update

Rediscovering webapp development

I just created a simple web application using eclipse web tools and tomcat.
It was so damn simple!! Why isn't it always like this!!!
I can modify components from eclipse and see the result in tomcat just by saving.
I trully envy .NET developpers with there integrated IDE.

I've been working the last 4 years on java web applications projects and it has never been simple.
  • Weblogic portal 4, I needed to modify jsp in the server repository directly using JEdit because my machine barely could launch this portal.
  • Weblogic 6.1 wasn't integrated correclty in wsad (at that time), using WTE could have solved this but my machine couldn't bare it either (more than 1 Go was necessary) and our production server were weblogic(s)
  • Even right now I'm using eclipse under windows but tomcat is located under FreeBSD on a development machine. I use samba to acces files!! (that's not simple!)

I might switch to .NET (just kidding;) )

8 Sep 2005

XPlanner

XPlanner is a web application to handle user story based developments.

I tested XPlanner because I'm currently trying to program in a user story centric way.
Installation didn't go as smoothly as daisy.
I had 2 problems:
  • source code didn't compile with 1.5 jdk because of enum keyword [see bug 1124530] - putting javac source="1.4" in ant solved this.
  • I had to change xplanner.properties with my root/password MySQL account (I don't like to leave my database password in clear in properties files)
At first, I found it a bit confusing, I didn't really catch the way to navigate in the web application. On top of every frame you can see:
Project | MyIteration | MyTask
It's the place were you are in the web site, I think it would have been clearer with something like:
Project > MyIteration > MyTask

You also need to configure a project in order to start using it... I find it a bit hard because of my lack of knowledge of a user story centric project and terminology.

An other problem was: I had hard time figuring how to add a person to a project, but I finally made it.

But XPlanner doesn't only have problems ;)
It seems quite simple (I like simplicity), you can get many metrics without additional efforts (your CEO will be happy!).
Every description can be entered in a twiki style, cool.
Simple http://.. links can be added to you're descriptions. Or you can create your own simplified protocols, example: bug:000[my link text] will point to the bugzilla page of this bug.
That a simple way to link xplanner to other systems.

In conclusion, I found XPlanner to be a good software but it seems a bit young, I think the few problems will be solve in the next releases. But it can already be used.

Daisy vs JSPWiki - The winner is...

In my previous post jspwiki against daisy, I decided I would take a look at daisy because of jspwiki's creator opinion of the product.

First despite the shiny title of this post: there is no winner, these are different products with totally different approaches.
Actually I don't really understand why Janne is so depressed about daisy?

JSPWiki is a really simple / easy to use wiki. Amongst other wiki(s) I tried, it's best one.
I tried Friki2.1 (lack basic features, left menu for example, bad search engine...), Ward's original wiki (not easy to read, lack features), mediawiki (too complex, allow to much customization of the presentation - table color etc... - mixed with data)
I know there are many others one but since I've always been happy with jspwiki and I know java/tomcat ... I didn't bother looking for an other one.
The cool thing about jspwiki is that it's simple and you get a basic wiki with almost no installation (tomcat + copy/past jspwiki.jar and you're done!)
Every time I needed an other feature, I always found the right plugin for jspwiki (blog in a jspwiki, index of pages etc...)

Now daisy is more complex and it has many other features.
Daisy is a full CMS system (yet an other one I would say), the installation is more complex but if you follow the step by step installation guide everything works fine.
After installing you will have at least 4 services running (MySQL, openjms, daisy wiki a webapp and daisy core).
Daisy can deal with subprojects, branches, documents revisions, languages, users, roles.
It has a WISIWYG editor, tons of options, a back office...
Just take a look at the full features list.

Keep in mind I didn't look for any particular feature to use, I just took a look at it.

Daisy is not what I'm looking for. I just want the simplest way to edit documents/notes and share them with other people on my project.
Daisy need to be installed, learned and administered on top of adding real documents.
People (including myself) won't update (lazyness/forget) documents if it's too complicate, if someone needs to validate documents or add privileges to the users before publishing.
Maybe for a corporate site where you'd better not print false information but for a project documentation, I think it's overkill.

Amongst the few things I would complain about daisy, is the necessity to know a document internal id to create a link to it. I think people will just add the http link instead of creating the internal uri using the document Id. (the path of least resistance)

Now you can see for yourself, you can have a live example with cocoondev.

update: an interesting opinion about jspwiki vs daisy.

7 Sep 2005

Fisrt or Last Name ?

As a french, I always get mixed up when it comes to entering first and last name in web sites forms!
So, as a reminder, I post this little text:
  • FIRST NAME = PRÉNOM
  • LAST NAME = NOM DE FAMILLE
I hope this time I will remember it :/

5 Sep 2005

A new chat'blog

If you like: free cats, .NET, bordeaux... you might be interested in julien's blog.
If you're like me: you like dogs, Java and toulouse... you won't like his blog ;)
As my fellow dutch pal would say: goed geluk julien :) (http://babelfish.altavista.com)

CSS pragmatic guidelines

I was looking for this for a long time and I finally found it: a set of pragmatic guidelines to css (also translated in french).

31 Aug 2005

Google parodic sites

Telerama (in french) release an article with many parodic sites of the famous google search engine.
Funny what can be done with a simple search engine :)

Funny image


I don't know if the book (In Search of Stupidity: Over 20 Years of High-Tech Marketing Disasters) is a good one but the picture is just funny :)

Power Batch

I found this tool (PowerBatch) quite usefull but I always forget the name!
So now I know I can found it in my weblog entries using batch , cmd , bat keywords :)

29 Aug 2005

Dumb and Dumber

I like simplicity but a synonym could be "dumb things"!!!
"Why Good Programmers Are Lazy and Dumb"
I think excactly the same!
I like the "google vs yahoo" comparaison.

Lazy, because only lazy programmers will want to write the kind of tools that might replace them in the end. Lazy, because only a lazy programmer will avoid writing monotonous, repetitive code ? thus avoiding redundancy, the enemy of software maintenance and flexible refactoring. Mostly, the tools and processes that come out of this endeavor fired by laziness will speed up the production.

Second (and I will elaborate a bit more on this because I find the concept to be less known than the first) a good programmer must be dumb. Why? Because if he?s smart, and he knows he is smart, he will:

a) stop learning
b) stop being critical towards his own work

27 Aug 2005

Rich Client Platform

2 interesting articles about RCP (from application-servers):
I admit AJAX aplications are nice and cool (gmail, google maps...) but I prefere a full java application because:
  1. I'm hate those javascript/cross browsers problems
  2. There is no technology/language mix (smaller learning curve)
  3. I like java and compilator errors (versus scripting language even if I'm learning ruby)
  4. I've been using CSS for web styling for many years now, it's nice but it can be so damn hard to get what you want sometimes...

18 Aug 2005

Cocoon search engine for Firefox

Feed up with typing http://cocoon.apache.org and typing the word you're looking for in the search box?

It happened to me every day... but not anymore! ;)
Because I made a little Firefox search engine plugin, you can find it at http://mycroft.mozdev.org

17 Aug 2005

Software Development Attitude

3 interesting articles from at least 2 famous people.
They point out the usal endless debates amongst developpers and there attitudes.
Nicely said :)

By the way, I more of an enabler ;)

4 Aug 2005

At last!


It took me 8 months to finish Half Life 2.

Excellent game, great graphics, superbe "ambiance". I really like the "The War of the Worlds" look and feel!!

I know "I 'm slow" :)
But I changed job meanwhile and I only played about 2 or 3hours per month.
Half Life is quite long.
Let say it a 40 hours game then, with the average hours I use to play, it would have taken me 1 year to finish it! (40hours/3hours = 13 month!)

As you can guess I played it a little more during the last few month ;)

3 Aug 2005

Rails vs Java

I know there are already tones of those articles but if you got time and want to here more than buzz... take 10 min to read this one: Some Numbers at Last. (really interesting)

Conclusion: Simplicity is always better :)

2 Aug 2005

Refactoring - a short summary

A nice, short explanation of refactoring.
Too bad there are still people that don't understand the long time value of refactoring... :(

29 Jul 2005

What happen that year ?

You can discover what happen the year of your birth just by looking at wikipedia.
French events:http://fr.wikipedia.org/wiki/1977
English events: http://en.wikipedia.org/wiki/1977

Just replace the last part of the URL by the year you want:
http://fr.wikipedia.org/wiki/19??

I think Thomas might be interested since he's born the same year as me ;-)

Update: "John Travolta discoed in Saturday Night Fever" cool!

22 Jul 2005

Kent is "severely embarrassed by the first edition" of XP

XP is a distillation of learning; a bunch of ideas that have proven helpful. Rather than telling someone "what to do", Kent now prefers to tell them "what I do" because the former undermines the person you are talking to. XP should not be thought of as a process like a computer program that you execute. In XP there's no one starting point, it depends upon your context. The XP practices help you work out things you can do to improve your software.

I deeply agree with the fact that no methodology is the silver bullet, solutions highly depend on context. You can only use those different methodologies as "advises" and see for yourself if your work gets done faster and better...

It was surprising to hear that Kent is "severely embarrassed by the first edition" of XP because it promotes a programmer-centric approach that suggests everyone else should change. Indeed, Kent is actually looking forward to the first edition going out of print because the message is so out of tune with his current thinking. This is somewhat sad as I think many XP practitioners have a soft spot for the first edition of "XP Explained" which was a call to arms to start writing code with "knobs turned up to 10".

May be it's time for me to buy the "holy bible" of XP: XP Explain 2nd edition...
But filling my week-ends with the reading of those kinds of books isn't something I'm enthousiaste with at the moment...
May be later then :)

Software is not as neat as it seems


Interesting article: "Painting the picture" from Rachel Davies.

I do think that even if we are engineer, our everyday's job is more like craftsman (just as the pragmatic programmers said it)

I also liked that picture because it makes me think of program I've encountered during my "short" working life and even program I made :(

21 Jul 2005

Mind Map: A Strange Technic

Kent Beck seems to use this technic for his tutorial.
At first I thougth: "It must be a joke", it looks like a 3 year old boy did it...
But it seems serious, there's even a book about it!

Well I don't think I'll give it a try but it's nice to know such a thing exist...

19 Jul 2005

The Rise of Open Source

Too bad that's not the rise of Ruby :(
But the best manuals for ruby are not edited by o'reilly but by the pragmatic programmers therefore they don't appear in this chart.
And Ruby is so simple, you don't even need a book... ;-)

Automated Java unit testing

I'm quite surprise by this product:
Parasoft Jtest® 7.0 with Test Case Sniffer?
Automates Java unit testing & code compliance. Auto-generates JUnit test cases from a running application. Tests individual classes or large, complex applications.
I can't see how a program can decide if a method that return false for example is the correct beheavior.
It can test if some part of the program throws exception but it seems to me it needs human interaction to decide which behavior is correct or not...

Java futur

Nice slides (a little too long may be...) about the futur of java.
.NET and Open Source greatly influenced the next releases and the new features in my opinion.

7 Jul 2005

JSPWiki against Daisy

I might take a look at daisy after all...
Because of this post of Janne.
You know, seeing open source projects like Daisy make me just want to stop JSPWiki development altogether. It's simply just too good, and I feel like there's no way I can compete.
Looking at the daisy documentation:
required: a MySQL database: version 4.0.20 or higher, or version 4.1.7 or higher required

I really like the fact that I only need a JVM and Tomcat (which I always have already installed on my machine) to run a wiki.
For that JSPWiki is still my favorite...

I'll try daisy and post a blog entry one of this day.

Discovering the world througth I18N (the nerd way)

I found this page on http://www.openi18n.org with all standard language, the funny ones:
  • ca_ ES Catalan SPAIN
  • fo_ FO Faroese FAROE ISLANDS
  • eu_ ES Basque SPAIN
  • gv_ GB Manx Gaelic UNITED KINGDOM
  • kl_ GL Greenlandic GREENLAND
  • kn_ IN Kannada INDIA
  • ps_ IN Pashto, Pushto INDIA
As you can see India is my favorite ;)

29 Jun 2005

Google earth - the new killing application ?

Amazing, unbelievable!!!
Take a look at google earth a desktop application to use google maps.
You can scroll the earth!
Totaly useless but so cool!

27 Jun 2005

Refactoring to Pattern

I just finished it! (youpi!)

Really interesting but honestly sometimes it is hard to read such a book during week ends ;)

But now I can use it a reference by finding codes smells and they're possible refactoring...

The Broken Window Theory


If you hadn't read "the pragmatic programmer" yet, go for it now!!

If you had then this blog entry about the broken window theory (and where it came from) is intersting.

I live here

Nice feature of google maps (mappy already did it move the blue bar in the uppper left icon):
I live here!

23 Jun 2005

MIT weblog Survey

A survey about weblog use, it's long but you get detailed statistics.

Actually I'm an average guy!
The only interesting points are:
- I started blogging in 2004 wich seems to be the highest "blogging start year"
- I mainly use Instant messaging for work.
- My year of birth is the second most frequent of all bloggers.

I included a link to the MIT survey on the right of this page.

Requirements never change?!

Nice post, I already knew that but figures are still usefull when trying to maker a point!

* Out of hundreds of projects, there is no case in which requirements remained stable throughout design.
* Of more than 200 product developers, fewer than 5% had complete requirements before beginning design.
* On average, design commenced with only 58% of requirements specified.

UI is Hard

UI is Hard:
Poster #1: They need to stop hiring angry little men and romantically spurned women to design user interfaces.

Poster #2: But doesn't that describe most programmers?

Poster #3: No, that describes all programmers.

I'm more and more convince that usability and UI are more important than any other aspect of software development. Just like my previous post.

21 Jun 2005

Another Quiz

After taking the "What leader are you?" quiz, here comes: "What is Your World View?"



You scored as Materialist. Materialism stresses the essence of fundamental particles. Everything that exists is purely physical matter and there is no special force that holds life together. You believe that anything can be explained by breaking it up into its pieces. i.e. the big picture can be understood by its smaller elements.


Materialist

88%

Postmodernist

81%

Cultural Creative

69%

Existentialist

69%

Idealist

56%

Modernist

50%

Romanticist

38%

Fundamentalist

19%

What is Your World View? (updated)
created with QuizFarm.com

15 Jun 2005

Usability guidelines

A succesfull story about developping a usable'program:
Clean, Cutting-edge UI Design Cuts McAfee?s Support Calls by 90%
Those 20,000 downloads of ProtectionPilot over a 10-week time span generated only 170 calls to McAfee's support linesapproximately one-tenth the volume that the company would expect, according to McAfee software development manager David Ries.(...)

With every feature, you have to make a design decision. We tried to make reasonable and good assumptions about setting limits; we actively eliminated options, and then validated those options with the users.(...)

Too many developers confuse what is possible with what is needed, he says. Youve got UI products out there with 200 different settings; as a user, youre not sure what to touch. Its like sitting in the cockpit of a 747.(...)

Its difficult, because some users will always request more. I think you have to decide what you want the product to do, and take a stand. Among the products Ive used that dont work well, most made the assumption that if they gave me more options Id be happier.(...)

For example, the word abort means something to developers, but it doesnt fly with users, Ries says. If you ask the programmer if something makes sense in his product, he will say that of course it does.(...)

A list of interesting articles about usability:
Still about usability, what font is the most common font on any plateform? Font survey:

14 Jun 2005

JUnit 4

Original Post from Kent Beck.

Other posts from TestNG: Cedric and mindstorm

Annotations, grouping tests...

10 Jun 2005

What Is Software Design?

Excellent article that spawn the foundations of some agile methodoligies'concepts as explain by Martin Fowler.
Amazing it was written in 1992 !!

9 Jun 2005

Google want to scan San Fransico

May be it's a joke anyway here's the article link.
The next step include it in google maps?!

24 May 2005

Remarkable?

I like the way they try to sell this book: The purple Cow.
Explanation of the purple cow can be found on this page.
As a french I like this part:
While driving through France a few years ago, my family and I were enchanted by the hundreds of storybook cows grazing in lovely pastures right next to the road.
The idea behind this book is:
The world is full of boring stuff -- brown cows -- which is why so few people pay attention. Remarkable marketing is the art of building things worth noticing right into your product or service.

23 May 2005

"Simple" is so much harder!

I really like this quote:
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius, and a lot of courage, to move in the opposite direction.
---Albert Einstein

18 May 2005

koders

Looking for sample code, in any language, koders in for you ! (some kind of google restricted to code)
An other nice feature, a summary for open-source project: an example with cocoon.

13 May 2005

Usability in practice

This morning I attended a usability session at intuilab. (by the way thank you sylvain for choosing me ;) )

Almost 5 years ago I took a course during my last school year at Sherbrooke university, where I discovered usability. During this course we needed to create a fake web site to check tv show timetables. So we needed to experiment the site on users and get there feedback!

Boy what a revelation! It made me understand that as a developper I could spend months fixing a functionnality users won't ever use and leave aside something that seemed obvious for me but not for them...

Unfornuatly I hadn't the opportunity to use this knowledge as often as I would like. Technics such as paper prototyping which is a wonderfull tool but sadly unknown!

Funny that 5 years later I was on the other side as a "user" during that usability session.

Another interesting article about testing with 5 users.

What leader are you?

After taking that little test, it's seems I have similarities with: "Albert Einstein"?!
One could find worste!

12 May 2005

Thunderbird Disappearing mail

Today all my account settings under Thunderbird where lost when I started it!

Everything seemed to be at the right place under C:\Documents and Settings\[myAccount]\Application Data\Thunderbird\Profiles\[a_number].default...
I discovered that there were a pref.js of 1 Ko and a prefs-1.js of 21 Ko (with all the aliases to my accounts)
Changing it and making Thunderbird point to the good location resolved the problem. But I don't know why it happended!

Looking at all the windows logs I found that yesterday night the automatic windows update installed this patch. I not sure it's it fault or someone hacked me...

Hope this won't happen again! (I'll start thinking of backuping this folder...)

A good page to resolve such issues can be found here.
update: another interesting link to manage/backup profiles informations.

11 May 2005

Rich clients in a Browser

Few months ago I started to take a look at new rich clients technologies such as Java web start, lazlo, xul, xaml etc...
But it seems like there is also another trend, launch with google new products, based on manipulating datas in old fashion html pages like google suggest, gmail using Ajax.

For examples you can take a look a cocoon ajaxified forms or even at mappy (that seems to use some kind of ajax too).

Today julien, pointed this impressive example of interactive DOM manipulation.

Interesting times :)

4 May 2005

Backpack video

I like product videos because you don't need to set up anything :)
So if you want to see some kind of "wiki for dummies" but with a good user usability:
- video 1 - of someone making, linking, and browsing reminders.
- video 2 - of someone setting email and cell phone reminders.

Source: ledanois.

Other videos from a previous post.

Check List

David Leigh-Fellows has post some kind of "check list" before going to production, funny because I discovered yesterday that the client I working for and who is in charge of the production deployment is putting the web site on a tomcat cluster. It woud be cool if someone had test this before!
Make your development environment exactly the same as the test environment. You don't want to be hunting through things like multi processor threading issue crap on the last day of your project after developing on single processor developer machines - believe me I've seen it happen.
Clustering is not easy to deploy. You've got to be sure no code write something in tmp directory or anywhere else. Users'sessions informations must be distributed accross the cluster or you've got to be sure the same user go to the same part of the cluster each time he makes a request.

I wonder how we will solve bugs like this when they will arise...

Also another interesting post about coaching techniques.

29 Apr 2005

Java Path Finder

Nasa is putting one project on sourceforge, I wonder if Ariane5 would have done the same and use this project, if it would still have blown?
4/26/05: It is done! JavaPathFinder is not just open sourced, but becomes the first NASA program to be actively developed and hosted on SourceForge.
Java PathFinder (JPF) is a system to verify executable Java bytecode programs. In its basic form, it is a Java Virtual Machine (JVM) that is used as an explicit state software model checker, systematically exploring all potential execution paths of a program to find violations of properties like deadlocks or unhandled exceptions. Other than traditional debuggers, JPF reports the whole execution path that leads to a defect. JPF is especially suitable to find hard-to-test concurrency defects in multithreaded programs.

26 Apr 2005

Conceptual Integrity

In 1975, FredBrooks said: I will contend that ConceptualIntegrity is the most important consideration in system design. It is better to have a system omit certain anomalous features and improvements, but to reflect one set of design ideas, than to have one that contains many good but independent and uncoordinated ideas.

Maven 2 Plexus

I was reading Vincent Massol blog about Increasing open source project contributions, I've been quite surprise to see in the comment part:
This is what is happening with Maven2. It's being built around a lightweight container (called Plexus). It is indeed the goal that plugins are developed in Java or in other languages. -- Vincent Massol
I don't really understand why he wants to use Plexus were there is already Spring, Pico and HiveMind.
And that just what Jason Carreira said (in a very polite way ;-) )
If the Maven community wants to be taken seriously you guys really need to stop making bone-headed decisions like this. Plexus? Who the hell is using that? Just because it's someone's pet project is no reason to base an already questionable project on it. When you're trying to sway public opinion (much of which has been negative toward Maven so far) you have to go out of your way to be mainstream and make it easy for people to use. This is why Venture Capitalists won't let startup companies base their business off of a dependency on another startup company. Maybe Plexus offers something that Spring doesn't (I doubt it), but is it really worth the risk of Plexus dying or just of people like me and Hani pointing and laughing at the silly decisions?
-- Jason Carreira
Jason is one of those people.

25 Apr 2005

Platefome (petroliere) de developpement

For french people...
I'm not sure this is true, but it seems a company wants to outsource it production on ships salling in the international sea areas.
Funny but scary if it becomes true!

21 Apr 2005

Don't step into an hospital!

Frightening article about usability problems in hospitals:
The study identified twenty-two ways in which the system caused patients to get the wrong medicine. Most of these issues are usability problems.
Cars are dangerous too ;)
The most striking example of how bad design can kill comes from in-car user interfaces: thousands of deaths per year are related to drivers being distracted by overly complex designs.
About usablity problems, I spoted two I didn't know:
  • Memory Overload - The well-known limits on human short-term memory make it impossible to remember everything across that many screens.
  • Overly Complicated Workflow - In general, whenever you see users resorting to sticky notes or other paper-based workarounds, you know you have a failed UI.

19 Apr 2005

eXtreme Feedback Devices

Making other people care about the metrics, cruisecontrol and unit tests is sometimes hard, eXtreme Feedback Devices (like lava lamps) is a good way to get some attention!

18 Apr 2005

XP - going back to childhood

It's seem sometimes XP people come back to childhood.
See the original Rachel Davies'story here.

Google desktop search

I was relunctant of using google desktop search product, but windows search engine is so slow... I never find what I want!
I'll just give it a try.
I can see, they make some kind of "html preview" in the search result page... cool!

15 Apr 2005

Google recruiting

Funny, colorfull video from google recruiting department. (I liked the indian guy who works on a rotating world map of google!).
Everybody is happy! Sun is shining! (propaganda?)
Anyway... may be we could do the same for Anyware? Coudn't we sylvain? ;)
ps: too bad you ain't got the shoes at the end of the video!

TheServerSide - Unit Testing Database

Interesting article about unit testing data acces or domain model objects.
I've come accross this problem on my previous project but the data access layer was "home made" (even before hibernate started) and couldn't be change easily.
So I used DBUnit in TestCase to unit test, the tests were a little slower but still good enough.
For the Ron Johnson fans ;) see the comments on the server side.

Maven 2.0

The Maven team is rewritting maven and still provide support for maven 1.x products.
I hope for them, they're making the right choice because making multiple branch for a product is a lot of work.

12 Apr 2005

xUnit Naming - Stub vs Mock

Gerard Mezaros is trying to find a common vocabulary for unit testing.
Personally I make a difference between Stubs and Mock.
For me, a Stub is just an object that return the same value over and over.
For example:
String Stub.getMethod() { return "test";}
Stub is a dumb object!
A Mock object, is more intelligent, it can test itself. You can use it and then do
mock.verify()
to check if it state is valid.
That's a big difference in my opinion.

9 Apr 2005

Half-Life hardware survey

Valve made a survey and made the results available here.
Alsmost every player use windows XP SP2. ATI won over NVidia and people have 256 or 512Mo of RAM.
What about you ?

6 Apr 2005

Thunderbird and import/export functions

I'm using Thunderbird for about 6 month now. Both at home and the office, and I'm quite happy with it.

So yesterday I decided to take it a step further.

Account settings:
I have personal accounts set at home but not at work, so every evening I need to check my mails. Usually, except junk, I don't get that much mails but I'm quite feed up with this way of doing.
So I wanted to import my account settings from home to work.
I successfully did it under
Outlook, there is an "export settings" function that create a small outlook file I can import back to outlook.
But unfortunately there is no such export in Thunderbird 1.0. Only import settings from outlook, outlook express and eudora. I need to type this one more time :(
Or I can get those outlook files, import them to outlook (and therefore need to setup outlook) and then export from outlook to thunderbird.

Blogs:
I also wanted to give thunderbird an other try for feeds (I'm using
sage plug-in for firefox).
But there is no opml import/export function and I don't want to type my xxx blogs entries.
Fortunately
someone add the same problem (full details in bugzilla) so I used his hacked version of thunderbird to import my feeds.
But I lost my feeds folders :( I need to rearrange all of them...
I'm not sure I use thunderbird for feeds... we'll see.
May be I'll give bloglines a try one day ;)

5 Apr 2005

Cook Until Done

Nice article. Funny to see people who gets money from teaching other people good ways to work say:
Every author, trainer, and pundit will swear up and down that "they know the secret."
...
But somehow it doesn't seem to be that easy.
XP is a wonderful tool but doesn't prevent you from thinking :)
Actually one xp rule is to break the rules if they don't fit!

1 Apr 2005

I hate encoding problems!!!

I hate them! I hate them! I hate them! I hate them! I hate them! I hate them!
I wish I lived in the shadok world which is a famous french comics. The shadoks have only 4 "words":
  • Ga
  • Bu
  • Zo
  • Meu
Everything would be simplier. Hopefully I'm not a chinese!
update:
I forgot one shadok word "Meu" (thank you sylvain)

31 Mar 2005

Pragmatic faces

Since I like to see people I read, here's the pragmatic people.

Rod Johnson ain't funny?

One could ask what it has to do with hibernate...
Anyway, I known some "rod Johnson'freaks" who bought his book ;)
I've resisted the temptation but for how long?!
I only read books of funny people and rod doesn't seem one of them according to gavin.

24 Mar 2005

Java vs .Net

Knowing people from the two world, I found this definition of "why java people dislike .Net", quite fair:
Mark Hapner pointed out that the community revolving around .NET is faced with a development language controlled by a major corporation, "Basically, Microsoft sucks the air out of .Net for everything that they classify as being of strong interest to themselves and there really is no place for other contributions," he said. Developers are forced to build on top of Microsoft?s economic model, which Microsoft can change whenever they want. The strength of the Java community is the support and collaborative efforts that exists between the organizations, open source communities and individuals alike.
What makes microsoft .NET attractive and not attractive at the same time is the lake of choice.
You (almot) have only one choice: visual studio and .net framework! No need for other frameworks, everything is included in it.
As soon as something is use by people it is included in the framework...
But then you have less choice when it comes to choose something out of the mainstream.

Also from the same article:
There was discussion between Hapner and Schmidt about how current Java technologies like JavaServerFaces and Hibernate are making it easier for developers to develop applications by providing reusable user interfaces and frameworks that may become, according to Cliff Schmidt, more appealing to Microsoft developers by simplifying the programming language.
I don't think any .Net developer will change for Java. The two world are separate and hardly speak with each other.

23 Mar 2005

The State of the Scripting Universe

Since I started recently to learn ruby, I found this article quite interesting!

Here you can learn that, on 666 developers surveyed:
  • 41 percent use Perl
  • 32 percent use PHP
  • 15.6 percent use Python
Too bad they don't tell about ruby!
The 11.4 percent left must be split between tcl and ruby, I suppose!

21 Mar 2005

iTunes

I tried iTunes during the last two weeks.
I found it nice but still not up to Winamp.
  • the mini player is too big compare to winamp's
  • winamp can sort by path + filename
  • the winamp media library allow to find files by author, title, music style etc...
  • winamp can shuffle the play list (not just shuffle IN the play list)
Winamp is still my favorite player!

23 Feb 2005

Java Web Start + Eclipse RCP

Java web start is nice for deployment.
Eclipse is nice because it's fast and has a clean plugin system.
Bringing them together seems a good idea.

Too bad someone else did it before me, I was thinking of doing something like that too :-(

JavaServer Faces in Action

A new book about JavaServer Faces has been release.
You can find a sample chapter about "how to do a login page".

22 Feb 2005

Lazlo eclipse editor

Just discovered that OpenLazlo has a plugin for eclipse.
Also belgium JUG has a seminar about Rich User Interface.

21 Feb 2005

Mozilla Sunbird

I'm looking for a way to synchronize my calendar and todo list at home, at work and in my old Palm IIIxe.

Actually I use Outlook for my work calendar, Palm desktop for my personnal calendar and todo list (both for work and home todos).
But it's becomming a bit messy...
I just dicovered that Mozilla foundation is creating a new project from Mozilla Suite call: Mozilla Sunbird. Some screenshots here.

It's not officially release but It has everything I need (and even more):
  • Import/Export in vCalendar format (outlook) and iCalendar format
  • Export to a local file or remote file
  • Subscribing to a remote file (of someone else calendar for exemple)
  • Export to a WebDAV server (such as Slide for example)
  • And many other features...
So my problem now is that:
  • Palm desktop is free and can be synchronise with my palm
  • Sunbird is free and has a good look and feel
  • Outlook is used everywhere but it's not free.
I think I'll just give it a try...

16 Feb 2005

Java web start samples

Best examples of java web start I've ever seen can be found at jgoodies.
I don't know if Java web start can be use with JDNC?
Lazo seems to be a good framework for UI components (buttons etc...)

9 Feb 2005

SyntaxHighlighter for Ruby

I've trying to learn ruby at the moment and I need to post code samples on my ruby blog.

So I decided to adapt the excellent SyntaxHighlighter for ruby.
I asked Alex the creator of SyntaxHighlighter if he can add it to the official release...
I can send it to you by mail if you are interested. Drop me a line at pub.cog@netcourrier.com (I may be slow to respond since I don't check this mail box often)

An example of what it looks like: here

4 Feb 2005

Link spammer

I've just learn something, spammer is a job and it seems to pay well:
Sam (...) lives in a three-bedroom semi-detached house in London, drives a vintage Jaguar and runs his own company. But "it's not not all rock and roll and big money", says Sam. What isn't? Spamming websites and blogs with text to pump up the search engine rankings of sites pushing PPC (pills, porn and casinos), that's what.
I thought they lived in russia or brazil...

3 Feb 2005

Director's cut

The interesting thing about video demonstrations of products is that you don't have to install anything (and mess up your registry entries). You just need a descent video player, you can quickly see the end result and see if your have any interest...

See for yourself:
But the movie still need to be short and interesting, not everyone can be a director ;)

Follow the trail, links that lead me to those video: PragDave, PragmaticAutomation

Update: EclipseWork video

2 Feb 2005

Javapolis pictures

Few days ago, I talked about learning people names.
But better than that, is seeing them:
are the one I know.

1 Feb 2005

Choosing a Java Persistence Strategy

Nice summary of diffrent solutions for data persitence.

Starting from scratch I would prefer "Database first" since a database (and its data) may live longer than our code or other products may also accesthose data. Choosing "Database first" allow you to concentrate on relationship model aka core business values.

But in real life, people don't early understand the necessity for a persitence layer (unless an architect is part of the team) and create both objects/tables and end up needing to use the "Spaghetti Junction". Especially if one team deals with database and the other with java objects.

25 Jan 2005

The Kaizen way

When facing a problem the usual "envy" is to create a big solution that seems to address every problem.
But in real life, you'll soon realize that's not that easy! Small problems go along your way and transform that wonderfull piece of solution into a not so perfect one!

I found working with small steps the better way to achieve things. Taking small requirements and adding them one by one is the best solution.

The Toyota production system really captured that spirit.

The same principle apply to Software has been discribe by Mary Poppendieck. (Excellent article: Principles of Lean Thinking).

You can also find a definition of Kaizen at wikipedia.

19 Jan 2005

Testing difficulties

Quoting from xp book mailing list:
If it's hard to write a test, it's a signal that you have a design problem, not a testing problem. Loosely coupled, highly cohesive code is easy to test. --Kent Beck
First time I used JUnit, I had trouble because my components where tightly coupled and then couldn't be tested easly.
At first I thought I'll extend JUnit framework by subclassing TestCase and then I realized I should use IoC to get easy to test and therefore easy to use components.

Pragmatic Programmer

Thomas lend me this great book: Pragmatic Programmer
...at least great until the 40th page since that the page where I stopped reading yesterday ;-)
Funny, easy to read, full of good advises and tips (some I knew, some I didn't).
Now I know I'm not the only sick person who keeps asking "why I'm doing this or that" when I work... :p
They emphasis you to always think about what your doing and why, to see if you could improve the thing (code, documentation, meeting, whatever...) your currently working at and become better.

Learning Names

Looking back at 2004, I realize (amongst other things) that I've learn peoples'names.
In 2003 I had hard time remembering names of famous java programmers/architects (or even not knowing those people at all).
Now I know who is:
But I still need to read a little more about some of them...
For example thomas pointed me Alistair Cockburn whom I knew about but never read anything from him.

14 Jan 2005

New job at anyware

Leaving midiway where I worked for soltim.
I had the opportunity to learn lots of technical stuff during those 3 last years (cvs, xp, junit, struts, eclipse...) in a team with cool people and a project manager who lets us try things to improve quality!
I'm going to anyware (thank you sylvain :-) ) , it will be hard since this company seems loaded with smart developers! (looks like a french thoughtworks to me).
Don't know yet exactly when I'll start...

Blog title changed

When I first created my blog at blogger, I didn't expected the text I was putting in the title input would appear in rss aggregators.
A blog with "Java/J2EE, XP and Architecture" title seems quite boring and pretentious ;-)
Now it's simply: "Francisoud Blog".

13 Jan 2005

XP Story Studio

.NET tool, usually XP stories are written on card but why not...
Also about user stories.

12 Jan 2005

JVM profiler

NetBeans memory profiler, usefull when you need to understand how memory is handle by the jvm (thanks to Tor for the link).

Also recently read about that subject (JSR 174: Monitoring and Management Specification for the JavaTM Virtual Machine):
Monitoring and Management APIs: The java.lang.management package provides the interface for monitoring and managing the JVM. It provides access to information such as: number of classes loaded and threads running, memory consumption, garbage collection statistics, on-demand deadlock detection, and others.
Since Sun made significant improvements of the memory handling:

New in the J2SE Platform version 1.5 is a feature referred to here as ergonomics. The goal of ergonomics is to provide good performance from the JVM with a minimum of command line tuning. Ergonomics attempts to match the best selection of

  • Garbage collector

  • Heap size

  • Runtime compiler

for an application.



EAI Patterns

If you like patterns (at least I knew a colleague who does :p ) and messaging (excellent introduction article to JMS), you should take a look at Enterprise Integration Patterns.

(Not so) surprising Holub rant

I've come across this SD times article from Alan Holub (pointed by Alexis).
At first I was surprised:
The newest version of Tomcat was just plain broken. (...)
Tomcat’s documentation is virtually unusable(...)
Some other open-source source code that I’ve seen is equally bad—Hibernate is a mess, for example—and many commercial projects aren’t much better (much of the Java library code is a case in point).
In all fairness, some open-source projects don’t have many of these problems, but those projects tend to have started life as commercial software that was released to the open-source community.
Since I've never really had problems with Tomcat and being a "open source" freak... I don't really agree with him, BUT he has some points and (even) open source projects aren't perfect (actually the perfect project is an utopia) and providing the right documentation (enough/not too much) is hard.

And then I realize I knew this guy from javaworld articles:
As you can see from his articles'titles, he's "Dr Evil".
He likes provocation... (just like tirsen).
Funny to see that some people are like that...

7 Jan 2005

New year - New Template blog

This is a new year so I decided to change my template blog. done! nicer!

6 Jan 2005

Database: natural vs surrogate key

When I fisrt started to use database, my teacher taught me about natural key (like Social Security Number) and then warn us about not making too much use of it (example of bad use: primary key is street + postal code + town + phone number to define a unique address) .
Then he introduced surrogate key (usualy a unique integer like AddressID).

My experience of database lead me to use mainly surrogate keys... until recently! where it seems that surrogate key might be a problem in some case.

Exemple:
  • Problem 1: your application/database need to import/export/communicate data to another application/database for exemple using a flat file between the 2 systems.
  • Problem 2: As always the 2 databases strutures are differents (concepts-features-tables-cardinality).
Question: What can you do? What problems do you have?
  • If you used surrogate keys:
    • You can send your AddressID to the other system but what will it do with it? The other system surly will aslo have PK_Address_Id of his own, it won't be able to insert your Id into his -> not able to keep unicity
    • You can try to send only natural keys (Social Security Number), but since it is not you primary key you can export 2 lines that seems identical but have a different Id...
  • If you used natural keys:
    • It seems easer to export Social Security Number into a database struture with ID + SSN than the other way
Reading the excellent agile data site, about this subject:
[Using natural keys]... The implication is that you want to avoid keys with business meaning because business meaning changes.
I tend to agree with him that surrogate keys are somehow still better since queries are easer and refactoring more flexible.
Also using natural or surrogate keys don't avoid problems about concepts such as:
  • system n°1: n Users owns 1 Order
  • system n°2: n Users owns n Orders
In that case I don't see any solution except changing one of the two system.

Conclusion: I'll still use surrogate keys but try to avoid them whenever possible if there is an easy natural key.

Refactoring to Patterns

Whee! I just received Refactoring to Patterns (ISBN: 0321213351)
It seems nice but as an introduction Joshua Kerievsky talks about the GoF and Refactoring.
I haven't read them (yet), hope this won't be a problem to understand...