Using MailJet as mail server for “Cadeaux entre nous”

My old website “Cadeaux entre nous” is seeing a large traffic during the christmass season:

  • around 2000 events were created during the last 2 months
  • between 500 and 1000 people visit the site each day.

This naturally lead to a mailing issue: I was previously using gmail to automatically send emails, I guess I reached the limit since it constantly required me to change the password.

I recently heard about MailJet, a French company that raised quite a lot of money last week. I knew Sendgrid but was willing to try something fresh.

Mailjet has a nice UI, clear instructions and allows you to setup your SMTP server in a few clicks. The real-time dashboard with analytics is a real plus to see if everything goes well.

I quickly reached the free plans limit (which is 200 mails per day), but thanks to a few donations from my users, I could upgrade a Bronze plan and since then, all is runnign smoothly. I guess I will downgrade when the holiday season is over.

Bringing video support to Phonegap Android

Phonegap for Android had serious issues with inline videos: HTML <video> tag was not supported at all on Android inferior to 4. (On Android 4.X, they require the View to be hardware accelerated)

On behalf of Joshfire, I worked on the main cordova Android source code by adding elements from the original Android browser. In the end, clicking on a video on a Phonegap application starts a fullscreen video player view. Hitting the “back” button goes back to the app. This is far from perfect, but better than nothing.

After submitting my pull request, I had warm and polite feedback from Simon Mc Donald of the Phonegap team, he helped to test my work and added the final touches before accepting the code into his branch.

Today the feature has been shipped into Phonegap 2.2.0. I had great feedback from both Phonegap creators and users. That’s something very motivating.

See the final commit in Phonegap’s source code.

Annual update to “Cadeaux entre nous”

Two years ago I built a simple website to organize online what is called a “Secret Santa”: you enter a list of participants, and everyone has to offer a present to someone else. the draw is done online and the mails are sent by the server. Since then, the service has been used moderately : more than 1300 events have been created.

Last year, I added an organizer dashboard, to track who opened the mail. This was a important feature in order to make sure that everything goes well. This year, following tens of user complaints, I added a way to change the email of a participant and resend him the drawing email.

The organizer dashboard, with the new edit and resend email feature

Happy holidays

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.