Last wednesday, I took a day off work to attend the iPhone Tech Talk in Paris. Apple had reserved a couple auditoriums at Université Paris 5 (école de médicine), kind of a weird place for a tech event to happen. Nonetheless, the event was pretty interesting (I unfortunately cannot talk about what happened there, because it is under a NDA). Although, I can say that almost all information giving can be obtained by signing up for free access to the iPhone SDK (then you need a 99$/year subscription if you actually want to submit to the app store).
Now that the iPhone SDK NDA is lifted, I can talk freely about my experience using the tools provided by Apple in building my first app. As of today, my app was downloaded by over 35000 people in the 65 countries where there is an Apple iTunes store. Of course, the majority of the people who downloaded it are from France. I think that I will open source the code on Google Code pretty soon. There are still tons of things I need to improve in this app, but it’s pretty usable for something I wrote in a few days. I received dozens of e-mails suggesting improvements and thanking me for the app. Open sourcing it will simplify contributions and improvements.
The most painful thing about the current iPhone SDK (I’m talking about version 2.1 here), is that Apple does not provide an official framework for mapping. Developers submitting to the the app store cannot rely on the UI components that are used in the official “Maps” app. On the one hand, Apple is strongly encouraging developers to build there app using the standard components they provided and base their UI designs on patterns seen in the Apple-provided apps (iPod, Stocks, Address Book etc…), but they are seriously affecting the overall quality of map-based apps by not providing a clean, fast, simple API for mapping. Most developers had to reinvent the wheel by implementing their own mapping component. For instance, my app uses a Google Code project that basically uses a UIWebKit (a web browser component) to call the Javascript Google Maps API, this is a pretty lousy, slow and inefficient way of showing a map…. but the GMaps license prevents people from calling the map tiles directly. Another project came out recently, this one actually tries to create a full blown Cocoa-based map component by using royalty free base maps (the old MS Virtual Earth tiles or OpenStreetMap). These basemaps look pretty crappy when compared to GMaps, but at least they’re free.
The most exciting thing that Apple did recently is definitely the opening of an official, Apple-sanctioned, developers forum. I hope that developers who feel the same way I do about maps will let Apple know about it.
Many aspects of the Java platform have improved tremendously over the past years. Sun has always focused a lot of energy around improving “business” features. Hopefully, they’ve recently diverted their focus on Desktop issues. In this regard, they’ve adressed performance (Hotspot compiler, refreshed OpenGL / DirectX based Java 2D pipelines), data binding (JSR-295), Swing Application Framework (JSR-296), new look-and-feel (Nimbus) etc… One area where most developers agree that Java is still lagging behind the hip / trendy frameworks (Flex, AIR, .NET 3.0, Silverlight…) is definitely video !
The way I see it, Java’s main advantage is the overall consistency and cleanliness of its APIs, which makes it an ideal academic language and encourages high quality object-oriented designs. After all, it’s not about the programming language itself… even though I generally find Java source code sexier than other languages.
Last summer, when I started working on the mini multitouch table project, I got up to speed with the state of video in Java. I realized that the Java Media Framework hasn’t been updated in ages and its APIs feel pretty old by today’s standards. On the Mac OS X platform, Apple willingly dropped support of the Quicktime for Java bindings, which currently forces Java developers to rely on very very old Quicktime interfaces, that do not benefit from the major Quicktime overhaul made in Tiger (10.4). I’m refering to full access to the features of newer codecs (H.264) and high performance capture interfaces (QTKit).
A few days ago, I attended a couple of the final project (projet synthèse) presentations by students of my university. A friend of mine, François Caron, presented his implementation of an error correcting codec for live H.264 broadcasting (such as live TV feed or mobile videoconferencing). Let me point out that it is a lot more challenging to do error correction in these contexts as you don’t have access to pixels in next frames when correcting the current frame…. unless you buffer the data, which is totally unacceptable for videoconferencing. François implemented a new optional feature available for RTP packets (RFC3984) which allows to specify the decoding order of the macroblocks (top-to-bottom order VS checkered pattern). The benefit is that if, for instance 50% of RTP packets are dropped (or delayed) you still have a lot more chance to have a nicely scattered set of pixels in the buffer. This allows you to apply bilinear interpolation between the macroblocks of the checkered pattern for spatial error correction. Also this increases chances to have more good pixels from previous frames when doing temporal error correction. As I’ve always wanted to experiment more with H.264 in general, I started looking for alternatives to JMF.
FFMpeg, GStreamer and VLC are pretty much de facto open source libraries for C/C++ video development. I was pleased to see that all of them have wrappers for Java: JVLC, FMJ/FFMpeg, GStreamer-Java. The level of support and quality of most of these abstraction is pretty crappy though….
Obviously there is still a lot of work to do and I hope that Sun and Apple will sort this out soon (hint: Java One 2008 is in two weeks). In the meantime, I’ll have to resume learning Objective C and refresh my C++… in any case it’ll be useful to do some more useful iPhone SDK hacking.
So I’m back in Montreal after 5 crazy days attending O’Reilly Where 2.0 and Google Developer Day 2007. I must say that I thoroughly enjoyed my stay in the Silicon Valley. There was so much information given during the numerous talks at Where 2.0 that I cannot summarize everything, but I am going to try to give you the highlights. By the way, all the links to stuff discussed were posted to my del.icio.us bookmarks tagged with “where2007″.
Tuesday kicked off with a talk by Schuyler Erle, which I had met at London WSFII two years ago. Schuyler is author of O’Reilly Mapping hacks, Google Maps hack and one of the developers behind the awesome open source Google Maps-replica, OpenLayers. He tagged about his experience with community “remapping”, that is when citizens create public domain maps using GPS tracks. He made great contributions to OpenStreetMap and more recently mapped streets of Mumbai, India. Mumbai is often referred to as a “Maximum city”, because of its incredibly densely sparsed population. Interestingly enough, this month’s issue of IEEE Spectrum also covers the topic of mega cities engineering. I can imagine that Schuyler’s work in Mumbai will be helpful to urban planners in this mega city that has big space allocation problems. Schuyler also discussed his idea that maps tell stories, that is to say that maps are great to use as a base layer for displaying data (example). (Read more on O’Reilly Radar)
Next up was Topix, a website that uses some sophisticated machine learning techniques to add locative metadata to blog posts, newspaper articles etc… Their categorization engine uses Tiger/Line data, lists of city mayors, park names, bodies of water, city demonyms etc… to identify locations, cities, places that the article is talking about and/or is from. For instance, you can choose to search for any blog posts, news stories or forum posts from or about Montreal.
Next up John Hankey, founder of Keyhole, now Google Earth, addressed Google’s contribution of KML as an open standard spec. through OpenGeoConsortium in 2006. He discussed their vision of the geoweb as they are working on Google Maps and Google Earth. They launched Google Street View on that day, which I think is pretty damn cool (look below on Immersive Media for more details on the technology used). He showed a cool demo of how Google Maps Mapplets can be used to create mashups of mashups (or meta-mashups), that is to combine many layers of data from various sources on the same Google Map (the key point here is that developers don’t need to coordinate, because they all use a common interface required by the Mapplets API).
Next up Quakr a website that displays geotagged Flickr photos on a 3d world map (kinda like Google Earth as a flash app in the browser). I didn’t think it was all that interesting (especially when there are KML feeds of Flickr photos that you can use to display the data on the map you prefer…). One thing that I remember though is that the guy said that a big problem with current use of tags / metadata is that it is often too simple to give proper semantic disambiguation, that is tell apart photos “taken FROM the Eiffel tower” and “OF the Eiffel tower”. Obviously it’s the fundamental idea behind all the work on Semantic Web standards (like RDF), but I still haven’t seen a fool-proof user interface to let users add this kind of metadata.
I’m skipping details on some less interesting talks…
Next up some rep. from the EFF (Electronic Frontier Foundation) gave an interesting talk on the privacy implications of all these location-based technologies on government surveillance… Poor U.S citizens :-p He showed a nice slide with a modified AT&T logo with their new slogan “AT&T. Your world. Delivered to the NSA”.
I was glad to hear Christopher Schmidt from MetaCarta talk about OpenLayers. OpenLayers is an awesome open source project that aims to create a vendor neutral abstraction to all map API (Google Maps, Yahoo Maps, MS Virtual Earth) and all open standards feeds (KML, WMS, GeoRSS…). I have been following this project for over a year, so I was glad to actually talk to some of the developers.
On tuesday night Sonya and I set up our booth for the Where Fair, which was in the lobby next to the main conference room. O’Reilly had printed a very nice poster with the description of iFIND. We talked to so many people that night, it was awesome. I really enjoyed explaining what iFIND does and how it works to some amazing people. Everybody who came to our booth seemed genuinely interested. Among others, I showed it to people from Nokia Research, Intel Research, Google, uLocate, Volkswagen Electronics Research Lab and MetaCarta. I had prepared a modified version of the iFIND client to simulate how it works on campus. I also had prepared a screencast video so that Sonya could also demo the software to other people on her computer.
The Where Fair lasted for three hours, then we headed to the bar where Skyhook was organizing their “annual beer bash”, basically free beer for everybody :-). We mingled with a lot of people and had a great time (though the party ended pretty early… something like 1am… well there was still one day left). We spent most of our time with the cool guys of Poly9 from Quebec City.
Highlights from day two:
Giving more details on the technology behind Google Street View, Toronto-based Immersive Media showed their 11-cameras capturing device. They actually use standard high-def. video sensors and capture at 30fps then their algorithm stitch frames together. They offer a 3U type server that captures the massive amount of data and adds GPS metadata. The guy said that their latest version of the hardware is able to give 1-inch resolution at 50 feet !
Another exciting moment was when Google Earth’s CTO demoed his Apple iPhone with Google Maps ! Unfortunetaly, since then we learned that the iPhone does NOT contain a GPS unit, nor does it will have access to GSM-based triangulated position…
I have to say that I have been pretty impressed with the venue where the conference was held, the professionalism of the crew, attention to details and the quality of the speakers. Sonya and I made some good PR work for the MIT SENSEable City Lab as we met so many people and told them about iFIND and what the kind of research the lab is doing.
So I ended up staying one more day to attend Google Developer Day at the San Jose Convention Center (one block from where the O’Reilly Where 2.0 venue). It was a geek paradise ! Everything was free (food, beer, conference, Google schwag etc…). Again, I mingled with tons of cool geeks… actually I ended running into a lot of the Where 2.0 attendees I had met. They launched Google Gears on that morning, which I was pretty excited about. I attended talks about Google Gears, the new additions to the Google Maps API and the Google system architecture. The day ended with a big party at the Google Campus. I was really impressed with the location. It sure looks like an amazing place to work ! I even had the chance to talk to Romain Guy, the guy who worked on Sun’s SwingX and SwingX-WS, that is the library I used to develop iFIND !
In a nutshell, this was an amazing trip to a geek paradise. I have to thank Brady Forrest, O’Reilly Where 2.0 organizer, for inviting me to present iFIND and Carlo Ratti, director of the MIT SENSEable City Lab for letting me actually go there !
Ce matin je me suis levé tôt et j’ai pris la route de mon trajet habituelle vers le campus en passant le Harvard Bridge qui enjambe Charles River. C’est un peu plus frais que la semaine dernière, l’automne approche à grand pas et j’ai hâte de voir les couleurs dans les arbres. Cambridge et Boston sont de magnifiques villes avec beaucoup d’arbres.
Tout comme lundi dernier, je me suis rendu au cours de Ronald Rivest à 11h00. Le sujet du cours était à se jeter par terre, enfin pour moi, “Cryptographic hash functions and MD5″. Imaginez, il est le co-inventeur de la cryptographie à clé publique (RSA), d’un des stream cipher les plus couramment utilisés (RC4) et l’auteur de la fonction de hachage MD5 … entre autres. Surement le cours le plus intéressant que j’ai jamais eu depuis très longtemps.
Après le diner, un faible pluie commencé a tomber sur Cambridge… J’ai pris la navette pour me rendre à CambridgeSide Galleria, le centre d’achat de la ville. Je voulais voir les nouveaux iMac 24 pouces et les tous nouveaux iPod nano sortis hier !!! Wow ! Le nouveau iPod nano vert est trop chouette…. C’est tentant, mais bah je suis bien content de mon iPod mini.
En fin d’après-midi j’avais rendez-vous au SENSEable City Lab pour une première réunion avec mes collègues de travail. Ça c’est plutôt bien déroulé, mais la réunion était un peu décousue, car le directeur du laboratoire n’est pas encore revenu de vacances alors on ne savais pas trop ce qui devait vraiment être mis en priorité. J’ai été également heureux de voir que je suis probablement plus compétent en programmation et en Génie logiciel que mes collègues, qui en sont à leur 3e année en EECS (Course 6). J’ai mis la main sur le module de positionnement Wi-Fi en Java. Je me suis donc rendu à la grande bibliothèque Barker, dans le dôme du MIT, pour faire quelques recherches sur de bonnes thèses sur le sujet. Puis j’ai commencé en étudier la documentation de Placelab, l’API d’Intel qui permet le positionnement par Bluetooth, GPS, Wi-Fi etc… Bref, je devrais enfin avoir de quoi m’amuser pour les prochains jours.
C’est avec stupeur que j’ai appris en fin d’après-midi au sujet de la tuerie au College Dawson. Ma mère m’a rejoint par téléphone, puis j’ai ensuite constaté que tous les sites (CNN, FOX, BBC, Reuteurs) couvraient la nouvelle. Quel évènement tragique ! Ça donne un peu froid dans le dos quand je me dis que ce n’est qu’à 1.5 km de mon université à Montréal….
Dans un monde où l’information circule plus vite que jamais, une simple étincelle peut provoquer un mouvement de masse. L’imaginaire collectif a souvent du mal à faire la part des choses et réfléchir un peu avant d’agir. Parfois cela mène à de facheux évènements, mais aussi parfois c’est tout simplement amusant de voir que les gens font des trucs tout simplement parce qu’ils l’ont vu à télé. Tout ceci pour en arrivant à ce segment présenté à Comedy Central lundi dernier par Stephen Colbert. Toujours en utilisant son humour cynique, il s’amuse à critiquer le sérieux de Wikipédia. Tout ceci en lien avec les évènements des derniers mois, où des pages de l’encyclopédie collective avaient été vandalisées. Il s’amuse à appeler “wikiality” la réalité que les gens peuvent s’amuser à inventer en s’improvisant éditeur d’encyclopédie. Dans son sketch il invite les gens à modifier la page Wikipedia sur les éléphants pour prétendre que la population de ceux-ci a tripler au cours des 10 dernières années. Vous l’aurez compris, un mouvement de masse s’en est suivi et la page fut vandalisée à son tour par de petits comiques Au moment d’écrire ce billet, l’édition de l’article est toujours bloquée !
Wikipedia est une fantastique source d’informations, mais il ne faut jamais oublier de vérifier ses références et de puiser son information à partir de sources variées. Si vous tenez vraiment à inventer votre réalité, Uncyclopedia est là pour ça !.
Regardez cette pub de Windows 2.0 datant de 1986 où Steve Ballmer, actuel CEO de Microsoft, habillé en vendeur de balayeuse bon marché, parle des magnifiques fonctionnalités de son produit. À part le veston, il a toujours le même look aujourd’hui …
I registered on Linked In a few months ago as part of my daily dose of Techcrunching and then kind of forgot about it. This morning I received an invitation from a friend at school, confirmed the contact and then boom I got totally hooked. I started by improving my profile to match my new positions, added my blog and link to my Flickr photos. I realized that a large portion of my actual network of friends were there. Just by adding some contacts I saw my 2nd degree friends grow like crazy. I’m fiercely waiting for all my invites to get validated. This is some serious dope. It’s fun to see how your network grows exponentially.
Hier j’ai présenté mon projet de recherche “La mobilité dans les réseaux IP : Mobile IPv6″ en compagnie d’Olivier. On a osé un “move” audacieux : briser de la routine ennuyante des présentations standard et adapter le “Lessig’s style” à une présentation technique sur les réseaux. Et je dois dire que ce fut un succès sur toute la ligne. Tous les gens ont été estomaqués par notre style de présentation dynamique et les nombreux clins d’oeil à plusieurs clichés insérés judicieusement au cours du discours.
En fait, on s’est plus inspiré du “Dick Hardt’s style”, parce qu’on utilisait uniquement des slides (Keynote 3 sur Mac) lettres noires centrées sur fond blanc, des slides fond noir avec lettres blanches pour les punchs et quelques images biens choisies. En moyenne, jamais plus de 3 mots par slides (ou une punch phrase). On avait 120 slides en 10 minutes. On a osé le faire parce que de toute façon la présentation se voulait seulement un survol, car on était limité à 10 minutes par équipes. On a remis un solide rapport écrit la semaine dernière avec tous les détails de la technologies, donc on a jugé préférable de se concentrer plus sur une introduction imagée et la mise en application.
Ce matin j’ai écouté quelques archives vidéo de Radio-Canada datant des années 60. En particulier, un reportage de 1962 où un journaliste interview un ingénieur de Bell Canada: « … La jeune fille est remplacée par une machine semblable à celle-ci par exemple. … qui remplace la jeune fille point par point, son cerveau on peut le retrouver ici … ». Évidemment, il parlait du remplacement des « téléphonistes » qui s’occupaient de faire les connexions entre les circuits téléphoniques par une immense machine remplie de relais. C’était par un beau jour il y 44 ans … Imaginez dans 44 ans …
Le site Web du quotidien français Libération a dévoilé sa nouvelle mouture aujourd’hui. Au menu, un look propre, des commentaires modérés sur certains articles, plus de multimédia (audio, photos, vidéos), des blogues par les journalistes, des fils de presse Reuters et AFP temps réel. Bref, un site beaucoup plus vivant, beaucoup plus Web. C’est un quotidien Web a part entière, plutôt qu’un quotidien papier qui décide de publier des extraits de sa publication sur le Web. Ils semblent avoir développé leur propre engin en PHP, délaissant du coup SPIP, qu’ils avaient utilisé pendant plusieurs années (je n’ai pas pu confirmé ça, par contre ils offraient leurs RSS via un SPIP sur rezo.net). Par contre, je note qu’ils ont des problèmes de conversion d’encodage de jeux de caractères. Ils semblent mélanger du UTF-8 avec de l’ISO-8859-1, pire l’en-tête de réponse HTTP Content-Type ne contient pas de définition de jeu de caractères…. Allez hop ! Au boulot les gars, c’est pas parce que les bleus sont en finales qu’ils faut laisser passer ça