14 Dec 2007

Close Encounters of the Third Kind (Silverlight)

I have been hearing and blogging about Sylverlight for many months now
But it's actually the first time that I encounter a sylverlight application while trying to: download the .NET Framework.

Microsoft doesn't force you to use it (there is an alternate web1.0 interface) but I thought I'd give it a try :)

First impressions:
  • I had to download sylverlight (1Mo, small = cool)
  • Restart firefox :( (bad especially when you have dozen of web pages open...)
  • Quit slow to start up (reminds me of applets)
  • The interface (controls, buttons...) is neat, it looks cool
  • The application I tested has too many gadgets for my taste (everything can fold/unfold) could have been more simple (but that's not a technology problem, it's an UI improvement)
  • Things that looks like buttons don't response or do anything ?! (that's really bad) that actually made me quit the application/web page

Well it didn't convince me.
Nice buttons, control, interface... but not user friendly and technical problems.
I know that's 2 different things but for users it's the same.
It reminds me of applets: nice idea but in practice it's not working well (I would have expect microsoft to know how there own technology work)...

update: After re-entering the sylverlight application/webpage; buttons are working, but the interface is really really not user friendly. It seems to me they wanted to use all those nice new features without thinking of the user :(
Also I tried to send them a mail or comment with this post link to help them improve but I gave up when I landed on this horrible support page.

Technorati tags:

15 Nov 2007

Fin du Buzz pour Facebook [fr]

Excellent article de Fred Cavazza analysant la situation de Facebook: "Pourquoi je ne crois plus en Facebook"

Il liste et analyse tous les points faibles de Facebook. Je suis d'accord avec sa conclusion, je pense que Facebook ne revolutionnera rien du tout en fin de compte mais existera avec une communauté correct d'utilisateurs.

Deux choses m'ont fait réagir en lisant cet article:
  • Les statistiques sur les sites les plus utilisés par les gens: les vrai, pas les geeks ;)
- 55 millions d’utilisateurs. OK, mais ça reste à peine plus d’1/4 de MySpace et d’1/3 de Neopets
- Près de 650.000 utilisateurs en France. Certes, mais ça fait à peine 5% par rapport à la communauté Skyblog ou à celle de Windows Live
  • A quel point je (et les personnes qui m'entourent) sommes complétement en dehors des réalités! (je le savais déjà mais disons que c'est une piqûre de rappel)
Depuis au moins 1 an je n'entend parler (sur les blogs, au café, par Instant Messaging...) que de Twitter, Facebook et autres application web 2.0.
On se moque régulièrement des sites MySpace, des Skyblog parce qu'on les trouve "kitch" et pourtant c'est ça que les gens utilisent !!

Il faut se rendre à l'évidence que je fais partit d'une caste repliée sur elle-même... un informaticien avec un blog (depuis longtemps), qui n'écoute pas M.Pokora ou Zazie et qui utilise internet pour le plaisir de l'utiliser (pas pour faire des choses).

Seulement lorsqu'on se retrouve devant des choix pour décider de la présentation d'une page web de son IHM, systématiquement j'entend dire:
"Si j'étais l'utilisateur je ferais ça..."

Seulement comment voulez vous, vous mettre à sa place, on est tellement différent!

Pour moi la seul vrai solution pour savoir si un site est bien pensé ou non, c'est de faire des tests d'utilisabilités.

Malheureusement je n'ai jamais eu l'occasion d'en voir en action en France, il semblerai que personne ne sache que ca exist ou que les informaticiens dans leurs chateaux de verre se disent qu'on ne peut pas laisser de tels choix à "des gens qui n'y connaissent rien" :(

Technorati tags:

7 Nov 2007

Mootools nice package manager

I just discovered the mootools download manager (mootools is an ajax javascript library).

Just click on the extensions you want and it will build you a single js file with them.

I like the skin, colors etc... I think they are neat :)

But the most interesting part it that if you want A it will automatically select the extensions it depends on for example B and C :)

Try to select: Element.Selectors or Fx.Transitions

But when unselecting A it doesn't unselect B and C...
Unless this is a core package that more specific package need in order to work.

Try to select all and then unselect: Element

But that doesn't bother me I prefer something simple and working well than something trying to be too smart ;)

18 Oct 2007

How to detect broken, dead rss feeds in google reader

A simple trick, I wanted to share in google reader.

Go to the Trends page:


Select the "Inactive" tab in "Subscription trends":


There you have it the list of somehow inactive feeds.

The top 3 reasons why those feeds may be inactive are:
  • the blog doesn't exist anymore (404)
  • the blog changed it's engine and the feed url is not the same (for ex: the blog moved from jroller to wordpress, it is hosted somewhere else...)
  • there hasn't been any post for a really long time
Advise for the blogger reading this:
  • Try to avoid at all cost changing the feed url
  • When it's not possible write a last post saying the url is changing before changing it otherwise nobody will notice it and therefor you are loosing all your readers

1 Oct 2007

Most Programmers Don’t Write Tests (and never will)

This article/survey inspired me for this post.

Extreme Programming has been around for the last 10 years but there is still a minority of people using it on a daily basis and I fear it will always be a minority.

I consider myself an addict to TDD. I won't explain what it is... I hope you already get the picture.

When I discovered it I got the "Woh !" feeling. At least a technique to write code with less bugs !
I tried (and in some case succeed) at doing some TDD evangelism.

My first opinion was that it was just a matter of educating people, I never learn this technique at school, neither in the enterprises I worked for... I learned it by reading blogs/books and so on.

But despite my efforts it seems it always ends-up in some sort of "rotten state".

The tests end up disable to do refactoring, people don't write tests first because they are stress and/or just want the thing done or other valid reasons in the sort term.

Developers just want immediate feedback and people always choose the "Path of least resistance". Doing tests is just harder because you have to face other problems ("how do I isolate my tests", "how do I avoid depending on a database", "I need to change my api to make it testable"...)

I think it's just human nature and human nature just don't change.

Take this extract from Jackob Nielsen usability guideline:
Overall, though, whether you look at application or website guidelines, usability guidelines remain remarkably stable across decades. That's because they depend on human characteristics, which don't change that much.

That why I dropped the evangelism thing :(

I just use this technique for me, show it to others and even explain it if I feel the person is responsive to it. May be some will find it useful but I doubt it will become the main way to code... Too bad :(

Technorati tags:

27 Sept 2007

The Elevator Test cheat sheet

I really like this "elevator test" blog post from coding horror so I decided to make it a cheat sheet, you can get it as a pdf.

Basically you should ask yourself those 5 questions to keep yourself focus one the main goal: "solve the customer problem"

What are you working on?
Why are you working on that?
Why is it on the bug list?
Why was it reported as a bug?
Why does the tester think that?

26 Sept 2007

Dr Who ?

Seen in Hadoop JobClient.class:

String user = System.getProperty("user.name");
job.setUser(user != null ? user : "Dr Who");

25 Sept 2007

To Test or not to Test private methods? That is the question !

We were talking about whether to test or not private methods, making them public to do the tests. I recommend this post of Michael Feathers.

I also recommend the "Mock" testing technique to avoid doing surgery on you objects. Using fake objects to record what methods are call on this object and then trigger the mock.assert() on this object.


Technorati tags:

Reading lines

I know this sound stupid but even if I've been using Java since 2001, reading a file "line by line" has always been a painful experience because java.io just sucks!
Ok may be it's wonderful piece of Object Oriented design but still "simple things are not simple" :(

With apache commons io to the rescue things become "more" simple:
InputStream input = getClass().getClassLoader().
getResourceAsStream("my/package/file.txt");
List lines = IOUtils.readLines(input, "UTF-8");

or
File file = new File("/commons/io/project.properties");
List lines = FileUtils.readLines(file, "UTF-8");

Still not simple enough but much better ;)

24 Sept 2007

Msn Live Search / Virtual earth better than Google Maps ?

Microsoft are testing a new "3D" and "higher resolution" version of there maps tool "Virtual Earth".

Apparently Toulouse is the "test" city, you can check the result by looking at the Capitole.

You need to click on this icon to use the "3D" feature:


The resolution is really impressive and this new "3D" feature with real buildings is great. Well Done!

Update: Here's the same place using the desktop version: Live Earth


Also: Chicago's demo video.
Technorati tags:

21 Sept 2007

Quote of the day

Any problem in computer science can be solved with another layer of indirection. But that usually will create another problem.
-- David Wheeler


Technorati tags:

19 Sept 2007

Flickr hacked ?

Flickr today's logo is weird?
Did someone hacked there logo ?

update: Apparently no, it seems it's the international "talk like a pirate day" ?!

Technorati tags:

17 Sept 2007

Flickr usability delight

I like the Flickr upload system so much, I think it deserve a post :)

Simple, nice little effect (the green mark pop's up) and so simple to use.
You know what is happening, you don't have to look at Ie/Firefox toolbar and wonder: "is it actually uploading something or is it just stuck ?"



Technorati tags:

11 Sept 2007

Bruce Eckel disgressions about languages

Bruce Eckel is the author of Thinking in Java.

Actually the part which I found the most fascinating is the "digression" part :)

But it turned out to be a non-event. The people who didn't want to change stayed with the earlier version of the language, and those who moved forward saw the costs and the benefits, and opted for the benefits.
Apparently Ruby is also planning code-breaking changes to the language, primarily to take out the Perl-isms (a move I heartily applaud, and one that makes Ruby that much more attractive).
And the Java designers should certainly take notice, especially because the people they are so worried about offending with language incompatibilities are still using Java 1.1 with no plans to change; they aren't even paying attention to these discussions.
In the meantime, Java continues to ossify, pursuing its endless quest to produce the perfect program through static type checking, by adding more and more. The good thing is that people are finally beginning to see that static type checking is useful in small amounts and intrusive in large amounts (although I suspect this realization won't reach the main group of Java designers for years to come).
The bad thing is that, in the meantime, we get abominations like Java "generics"; via daily use people are finally beginning to see what I tried to explain years ago -- Java "generics" are far more painful than helpful, just like checked exceptions. But I digress.

I don't have such strong feelings against generics because it make sense in a "java only" world.
Since I discovered (and understand) ruby dynamic typing, my view on typing completely changed but I doubt one can understand what it brings until you actually use it.

Static typing is just for "making the compiler happy" it just make you loose time and productivity, dynamic typing is so much more powerful but like all powerful toys you can burn yourself (put 2 different type of objects in the same var is one of the possible ways).

You should read the rest of the article: Python 3K or Python 2.9? it's really interesting!

Technorati tags:

7 Sept 2007

Java generics and interface

Vincent asked me if it was possible to specify that a generic parameter must implements a specific interface. Well that's possible but instead of writing:
T implements MyInterface
you need to do:
T extends MyInterface
Here's the full code listing:
public interface Toto {
public void execute();
}

public class TotoImpl implements Toto {
public void execute() {
System.out.println("execute");
}
}

public class Foo <T extends Toto> {
private T t;
public void setObject(T t) {
this.t = t;
}
public T getObject() {
return t;
}
public void doSomething() {
t.execute();
}
}

public class Main {
public static void main(String[] args) {
Toto toto = new TotoImpl();
Foo foo = new Foo();
foo.setObject(toto);
Toto notCastedToto = foo.getObject();
foo.doSomething();
}
}


update: thanks to nico to point that > and lt; wasn't display in the code, making it pointless ;)

Technorati tags:

4 Sept 2007

Eclipse Tip of the day

Just discovered the only shortcut you should remember in eclipse: Ctrl+Shift+L.

Bring up the list of shortcuts ;)

ps: Apparently, you need to have an editor open.
ps2: I can't do a print screen because eclipse think I'm trying to do a shortcut :p

New Office, New Desk

The Joost team just moved in a more "spacious" bloc in the building (pictures).

I trade my Vincent H with a Francois G. I won't have flaming discussion about "ligature" ;)
But I'm pretty sure Francois has a lot to say about burgers ;)

Technorati tags:

31 Aug 2007

Google History

The google web history actually exist for a long time, they only made official release recently (4/19/2007).
I've been one of the early adopter, it's sometimes useful to find something that you didn't found interesting at first glance but few weeks/months later you finally realize it was something you want to bookmark or show to someone else.



An interesting side effect is that you know you average query, for me:
  • Started on Jun 2005 (27 month)
  • 4564 queries
  • that means an average: 170 queries per month
What is yours ?

Technorati tags:

Google and personal informations

Sometime people get worried that all their data belongs to Google and that often leads to "Google knows everything about you" syndrome :)

Even if I also share those concerns, I think that Google is still made of normal human beings and they are not "that" clever. Just take a look a those 2 screenshots:


in google calendar



in my iGoogle page

One would have expected them to somehow "guess" that, don't you think ?

Technorati tags:

28 Aug 2007

Impressive Image reduction technique

Impressive new technique to resize an image without altering the overall impression, you just need to pass though the first few minutes to see a live example ;)

22 Aug 2007

Enter the matrix: Fighting robots

I know many robots fans, that only lack some Artificial Intelligence and you 're done !

IMac and cables

Ok may be Apple find a way to make my think "I want to buy an iMac" ;)

I hate all those cables, if only they could disappear...

Don't want to be picky but even the iMac could remove 2 unnecessary cables: the keyboard and the mouse one. That would leave only one cable! Joy!




My dream computer would be something more original, steampunk for example :)

9 Jul 2007

Ubuntu Studio


The ubuntu enthusiasts out there will surely like the new custom distribution of Ubuntu call "Ubuntu Studio".


"Ubuntu Studio. A multimedia creation flavor of Ubuntu.
Ubuntu Studio is aimed at the GNU/Linux audio, video and graphic enthusiast as well as professional."

I'm not sure all the Mac addicts will want to replace there graphical nice looking workstations with a "ugly pc" running Ubuntu Studio ;)

Technorati tags:

4 Jul 2007

The real "Simpsons" mini market


Ever wanted to go to Apu's minimarket, well there it is ;)


28 Jun 2007

Page Flipping

Recently I've been flipping through some online (almost like real) magazines. Just wanted to share a few of them and at the same time looking at what a page flipping application looks like with different technologies Flash and Sylverlight.

If you know any other examples, post a comment ;)

Technorati tags:

21 Jun 2007

Burried car


In 1957, a Plymouth Belvedere was burried in Tulsa for a constest.

The car was seen as a way to show 21st century citizens a suitable representation of 1957.

50 years later the contest is over... but things didn't go as planned [fr] :p

Luckily the Egyptians where more skilled at burring things ;) Otherwise we would not even know what a mummy is!

More info about the whole story.

14 Jun 2007

Spring property placeholder

Do you know about property placeholder in spring? I do but I always forget about those little tricks to make this work :( So here's the simplest example I could find so that next time I only have to search my blog for this ;)

The purpose of this is to replace, at runtime, a value in the spring xml bean definition, like this: -Dmy.ip=1.2.3.4

The bean:

package test;

public class Model {
private String foo;
public String getFoo() { return foo; }
public void setFoo(String foo) { this.foo = foo;}
}

The main (I tried with FileSystemResource and XmlBeanFactory instead of ApplicationContext but it doesn't seem to work):

public class Main {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"beans.xml"});
BeanFactory factory = (BeanFactory) context;
Model model = (Model) factory.getBean("model");
System.out.println(model.getFoo());
}
}

The xml (don't forget the conf bean!):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="model" class="test.Model">
<property name="foo" value="${my.ip}"/>
</bean>
<bean id="conf" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
</beans>

Technorati tags:

Google special keywords

I don't about you but I never found a list of all those special google keywords for optimizing your search.

The only place that I know is google sitemap product where you can find this page:


Technorati tags:

Firefox Themes

Usually I'm not one of those guys trying to customize every aspect of my Os/favorite program.
But I wanted to give these Nasa theme, because I liked the pitch:
This theme is for people who like it dark.
Guest what ? ;)

This them is really net, it even customize the javascript alert boxes !




Unfortunately not every one likes dark :(



I tried to play a bit with Firefox options to force dark background color and white text, but most of the websites look ugly :(


I'll try like this for the next few days but I may come back to the old fashion look...



Technorati tags:

8 Jun 2007

Skype spam

It seems spammers are trying to reach us even on skype :( (this chat windows just poped up)


I suppose the solution is: update skype and change your privacy settings



Too bad that good open minded ideas (wiki, mailing lists etc. ...) are always spoil by those guys :(

Technorati tags:

OpenId Screencast

If you're want to know what openid is... But you don't want to install anything.
Take a look at this screencast it shows you what it will look like in your day to day life.

Technorati tags:

7 Jun 2007

5 rules to avoid Feed/RSS spam


Since I moved my feeds from sage (a plugin for firefox) to google reader that's the first time I have no unread item! Hurra!

My rules of thumb to avoid being spam by feed:
  1. Think twice before subscribing in the first place (the hardest rule in my case)
  2. Unsubscribe when you don't even read the articles by only the titles
  3. Unsubscribe when article is more than 20 lines (I make exceptions)
  4. Unsubscribe when feed is never updated
  5. Unsubscribe when too much posts (more than 10 per month)
Examples: I removed Seth Godin because of rule #2&5, Joel on Software because of #2.

I'm considering removing TheServerSide because 90% is just:
"xxx framework has release 0.2.0.4.8RC1 codename: stupid-animal"

Too bad this post is too long (rule #3) ;)

Technorati tags:

MSN sound remixed & Darth Vader Art & Whatever for dummies

Some fun/strange links I found while browsing the feeds I most of the time don't read:

Technorati tags:

Google religion

Since Google is slowly taking over our lives with all those web2.0 applications the next logical step is the Church of Google :p

We have compiled a list of nine proofs which we believe definitively prove Google's title as God


Technorati tags:

5 Jun 2007

Photosynth demo (Microsoft real Wow!)

From Microsft vista's advert:
“Every so often you experience something so new, so delightfully unexpected, that there’s only one word for it: Wow,”

But not because of Vista ;)
This Photosynth demo is really amazing! Look at what this guy do with "Notre Dame" (Paris) made with flickr images!

More info about Photosynth.

Technorati tags:

25 May 2007

Strange Audio Cubes

I don't know the purpose of those audio cubes but anyway it fun ;)




Source[fr]: christophelebot

Technorati tags:

24 May 2007

Why the @Deprecated annotation sucks

Usually when I want to remove a method and I don't have access to all the client code easily, I start by putting the @depreacted javadoc tag like this:

/**
* blablabla.
*
* @deprecated use foo.bar.MyClass#method instead
*/
public void oldMethod() {}

I try to give a clue of what should be use instead of this method to help my fellow developers.

I wanted to do the same but with the new @Deprecated annotation But you can't pass a string to it!

I couldn't believe it, just adding a simple string parameter... and I'm not the only one:

Is the @Deprecated annotation more useful than @Override? I think not. The annotation doesn't support any arguments, so unlike the Javadoc tag you can't provide a string to explain the deprecation and recommend an alternative method to use. The @Deprecated annotation actually provides less value than the @deprecated tag. The only advantage with the annotation is that you can programatically detect deprecated items at runtime. For that reason, conventional wisdom says to use both the @deprecated tag and the @Deprecated annotation, one for documentation and the other for runtime reflection.


Ok the @Depreacted annotation will be pick up by any compiler whereas the javadoc tag will only be pick by modern/intelligent IDE (but most people use eclipse so this point is not really important)


Adding twice the same info (deprecated) is a leap backward to me :(


Technorati tags:

23 May 2007

WTF ?

Shame on me!
I have to admit it took me really long before figuring out what those pictures meant ;)

You will need this site to find the answer.

source: Ugo

Technorati tags:

Geek "All of Fame"


I wonder how many people know "Bruce Campbell" (I do) and BTW if they realize that this funny french restaurant guy in Spiderman 3 is him (the most funny part of the film in my opinion).

Technorati tags:

21 May 2007

What I'm reading

I've recently started to use Google Reader Shared items. When ever I found something interesting, no matter what subject, I add it to my shared feed. You can take a look or/and subscribe to it Google reader Feed ;)

Technorati tags:

15 May 2007

14 May 2007

Compass (Lucene + ORM + Database)

I just followed this Server side announce and found Compass. A project that seems a great bridge between the database world and functionalities and the lucene world and it search capabilities.
Need to dive into it to take a closer look... but the feature list seems interesting:
Compass Core
  • Lucene Jdbc Directory: An implementation of Lucene Directory to store the index within a database (using Jdbc). It is separated from Compass code base and can be used with pure Lucene applications.
  • Search Engine API: A powerful and simple to use abstraction on top of Lucene Search Engine.
  • OSEM: Object/Search Engine Mapping technology (using xml and/or Java 5 annotations). Allowing you to declare the mapping from application Object model to the underlying search engine semantics.
  • Resource Mapping: Ability to map application resource through Compass when no Object model is available.
  • Transaction support: Provides both LocalTransaction and JTATransaction implementations.
  • Common Meta-data: The means to externalize common mapping meta-data into easy to manage centralized resource.

Technorati tags:

13 May 2007

Get a Joost invitation

If you want to get a joost invitation, just ask Lucas he will be glad to send you one ;)

Go to his blog !

Technorati tags:

11 May 2007

New Blogger skin

I moved to the new blogger template system. Unfortunately I didn't find any that really please me :(
The new web2.0 interface is cool but editing the html is harder now. Too bad I found those spiderman blogger skins but they are for the old blogger template system... You can still hack your way thought (see the readme file with it) but I don't want to

Technorati tags:

10 May 2007

Paris Hilton on Joost


I just discovered Technorati WTF. Did you know Paris Hilton was one of the first video on Joost ;)

ps: I'm gonna have a lot of traffic whith this one ;)

Technorati tags:

Lucene and Solr ApacheCon presentations

For those of you interested in Lucene and Solr, here's Yonik's ApacheCon presentations.

Technorati tags:

Web Framework Comparison

I was awaiting Matt Raible's Web Framework Comparison at ApacheCon because it gives a good overwiew of the state of web frameworks (at least it echo's with my guts feeling about how many people use what).
Interesting reading. Even if JSF is clearly ahead in term of use, still people seems to dislike it...

Technorati tags:

9 May 2007

Javascript and Ajax lazy links

Various interesting articles related to javascript:
Some of us were punished so much so that we actually started to like it. We point and laugh at the all the awful HTML and JavaScript on the web that barely functions. We scratch our heads and wonder why the browser can't give us the punishment we so richly deserve for our terrible, terrible mistakes.

27 Apr 2007

Skype new useful feature

I just installed Skype new windows version and they added this useful new feature:







Now the chat windows only blink when someone say my name ;)

Technorati tags:

26 Apr 2007

Ps3 answer to Second Life

I don't particularly like those metaverse things but at least this one looks nice...





Technorati tags:

24 Apr 2007

Microsoft Access files trick

A little trick to work with legacy access files.

What can you do to browse an old Microsoft Access File (.mdb) when you don't have Microsoft Access ?
Create an ODBC connection in windows and use OpenOffice Base to connect to it :)
You can take a look at this tutorial for MySQL, it's almost the same for the Access files.

Technorati tags:

23 Apr 2007

Writing Error Messages for Security Features

I was looking for some nice security related error message since I had to make a user friendly error message page. I found this nice and pragmatic article for msdn, just what I needed :)


Technorati tags:

19 Apr 2007

Lazy usability links

Some links I've been reading lately and I'm to lazy to do a full post about each one:

13 Apr 2007

Vieux ?

Apparement je dois devenir vieux, il y a un peu trop de chose que je comprend dans cette description (oui je savais pour les Twix/Raiders et mon premier PC était un Commodore)!

Technorati tags:

12 Apr 2007

The IPod UI history


Really interesting article about the evolution of the IPod design


Technorati tags:

25 Jan 2007

Google Music Trends

One of those cool google tool: Google Music Trends.

Simple and efficient. A Top 20 of music searches.
Current number one: Chasing Cars - Snow Patrol, cool I like this song :)

Plus you can use a simple URL like: http://www.google.com/musicsearch?artist=Linkin+Park&song=In+The+End

Technorati tags: