voyages-sncf.com: more is less

If like me you are fed up with the cluttered interface of the main French train ticket website voyages-sncf.com, I advise you to try Capitaine Train, a startup that sells tickets too but re-invented the interface and is doing it right.

However, if you still want to use voyages-sncf.com for whatever reason, you can install this little hack I made by removing everything not necessary to me:

voyages-sncf.com left before, right after

How to use it:
Install the Stylish add-on for Firefox or Chrome, then install my style from this page. Enjoy.

The simple “source code” is available on this gist, feel free to make it better.

This could be a message to SNCF: Keep It Simple Stupid, please.

Maldives documentary

A friend of mine is working on two or three documentaries about marine life. He is a very passionate diver and really loves to share his passion. You can watch his previous videos on his Dailymotion Channel.

His first trip is to the Maldives, where he will be filming Manta Rays. I worked using Blender on a shot that explains the travel and the location.

You can see on the following video, various iterations of this shot:

Square of the Dead

or “28 check-ins later“…

This week-end, I participated to the foursquare global hackathon. I worked with Jean and Olivier on

I’ve been having an idea for a long time: imagine a virtual virus that is spreading due to our social interactions. Wouldn’t it be great to see it spread and to see how people react? Foursquare was the ideal product to build upon. So I pitched a crazy idea about virus and zombies, saying that a game mechanism was still to be defined.

Inspired by zombie movies, we worked a long time to define a simple game pluggable on foursquare. After a couple of iterations, we came up with a simple system:

Square of the Dead, rules

Players can either be survivors or zombies.

  • When you are a zombie, you contaminate every place you check into. Your goal is to spread the virus.
  • When you are a survivor, you get contaminated if you check into a contaminated place. Your goal is to survive, for this you can find guns in non-contaminated places. These guns will allow you to de-contaminate places and transform zombies from these places into survivors.

The game do not require so much actions from the players, they just have to keep using foursquare to play. We minimized the problems by adopting a cross-platform notification system that everyone is already using: emails.

Technically, we used the Play! framework deployed on App Engine using Siena. I ran into a bug that made us lost some precious hours.

We will polish the game and maybe come up with some nice other features (like a map to see the virus spreading all over the world!).
Try “Square of the Dead” now.

Olivier, designer, also blogged about his experience.

Working on the project, picture by Le Camping

I really enjoyed the hackathon. Other projects were really great. here are my favorites:

  • 4sqBox: receive files when you chek-in somewhere
  • fstalk2her: check the boy/girl ratio before going into a bar and see what you have in common with these people :D
  • Check Me In: Check-in just by facing your smartphone in front of the venue’s iPad (use case: you have no network)
  • Gettogether: very slick mobile app to organize something with friends.

AnyDance

I’ve been hacking on a little project during the summer. The idea is to use the phone as a remote controller for a game displaying on a screen. I’m building a dance game, where the players’ goal is to follow a dance seen live in a video.

I’m using the accelerometers of the phone to record the movement of the players. Then I compare this to the reference movement of this video. If the movement match, the player earn points. The best dancer win at the end of the game.
Technically, the main challenges are the processing of the accelerometer data and communicating in real time.

Accelerometer data from the phone: I could use the native APIs and build a native app, but Phonegap is providing an accelerometer API, so I could build my app once and use it on many platforms.

Data comparison: I have to use well thinked descriptors to compare the recorded data to the reference. I will start by detecting the “bumps”, their direction and their amplitude.

Live communication: I’m using some real time technology to make all the device communicating with a server in real time: my choice is to use node.js and the socket.io library (and to ideally use web sockets).

Data store: the library of dances will be stored in a no-SQL database. My choice is to use mongoDB.

Record a dance: one last challenge is to record the reference dance for a given video. I will try to use some simple machine learning algorithms to extract the reference from a set of records.

You can follow the development on my github.

You just know the time

Are you always able to tell time after having checked your smartphone?
Very often, I’m not. Yet, time is displayed very big on the unlock screen and is always visible at the top.

When using my smartphone and when I don’t want to explicitly check the time,  I don’t pay any attention to the clock. It can be similar to the “banner blindness” phenomenon.

What if the time could be printed into my mind without doing any effort?

I wanted to experiment around this idea. In a short time, I created a live wallpaper for Android which color changes over the hour.

The wallpaper color changes during the hour.

I’m sure that after having checked the smartphone, we are able to tell what color was the background. And because a given color corresponds to a given number of minutes, we can approximately guess the time. The tint of the background color depends on the minutes : 0 min is red (0°), 30 min is turquoise (180°)… I think that the hour is not important, most of the time, we are able to guess the hour.
Of course, it requires a learning time. A time for our brain to learn the bijection between colors and minutes. This experiment will test if it is easily possible.

The HSV color wheel is mapped on a clock. Every color has its minute.

Give it a try by downloading “Color Clock Wallpaper” from the Android market.
qrcode
And it’s open-source, bitch! You can grab the code on my github and come up with your own additions.

I will start using it every day, and see if this experimentation works. It may require to be tweaked, we will see.
I also have ideas for additional features:

  • Add a texture to the wallpaper, for it to be pretty.
  • I notice I like to tap on the screen when I have the “Nexus” wallpaper, because I know it will do something entertaining. What if this something could make me know the time?
  • Let the user choose the color gradient ?
And you,what do you think ? Did you test it ? Leave your comments here.

Image processing with Javascript

I’m used to do image processing using Matlab or OpenCV. But today, I prefer using web technologies because sharing and debugging is easier.

How to do image processing using Javascript ?

The canvas API is good to manipulate pixels, however, a library with the most common operations would be great.
I spotted two libraries: PaintbrushJS and Pixastic.

  • PaintbrushJS simply allows to apply filters to images on the page, that’s it.
  • Pixastic is more flexible, offers more filters and features. And you can easily call a filter in your Javascript code.

But because of its simplicity when reading the code, I started some experimentations using PaintbrushJS.

After a few minutes, I noticed that the matrix convolution operation was not correct in this library. So I fixed it in my branch. Feel free to use it.