Text

The Setup

Update (09/06) : I’ve been quoted on the community page of Usesthis. Thanks Usesthis!

This post is inspired by the website UsesthisI’m not really into geeky exhibitions but I love to talk about my setup, which is pretty basic but efficient fo my use.

What hardware?

My main machine is an old 2008 13” Macbook unibody. Apple made theses only for few months before the 13” get a Firewire port and became part of the Macbook pro line.

It’s still running with an old 2,4ghz C2D and I’ve upgrade it with 4gb of memory and a 128gb SSD. Since I love working with a bigger screen resolution (I had a 27” iMac in my previous job), I’m using a LG 22inch external display.

I’ve also an old Mac Mini hidden on a rack used as integration and deployment server using Jenkins.

As an iOS developer I have an assortment of iOS devices to be able to test my latests applications in all situations. 

 

And what software?

Since I’m an iOS developer, my main tool is of course Xcode.

I also do some Rails development from time to time using Sublime Text 2 and hosted on Heroku.

My code is hosted on Github and/or Bitbucket, I use Trello as planing tool, and Redmine for bug tracking.

Last but not least, I’m a long time Spotify user and my playlists get bigger everyday.

What would be your dream setup?

I’m pretty happy with my current setup right now but I’m waiting for the next keynote to upgrade my main machine for a 13” Macbook Air.

I almost forgot what is like to have more than an hour of battery life and I would love to be able to use my external screen to it’s maximum resolution.

Text

NSURLRequest to Curl Category

print Curl request from an NSURLRequest for replay/debug purposes

Text

Handling error display in one place.

I recently had to work on an existing app for the group who own my company.

This project was first made by a service company and since it used one of these custom home made framework I had to rewrite it from scratch (doesn’t mean I enjoy writing this app but at least I was able to make it my way).

One of the first thing I had to deal with the original app is about error display.

For instance, the app was registered for push notifications and it had to send the push token to the server. Problem is, the server was made to work with a device UDID as unique identifier (pre iOS 5) and since Apple change it’s way to create an unique identifier, the server was not able to handle a same push token for two devices and so the server reply with a “SQL primary key violation” error which was display to the user as a “from the server error”…

You can imagine what it mean to your end user to see such kind of error at every launch: I had to find which part of the code was guilty to display this error. So I when to the basics… looking for an occurrence of “UIAlertViewController” in the whole project, to find which one is displaying error from the server response. 

Since I have to rewrite the whole application from scratch, and handle error from the server in some case (obviously not this one) I try to find the best way to handle and display error in one and only place in the whole application. This is how I made it:

First I create a parent view controller which inherit from UIViewController and from which every view controller of my project will inherit.

This ViewController has a methode named “handleError:” which take an NSError (or if you prefere a custom class of error) as parameter.

In this method, the ViewController may display the error in the console or write it in a log file. Than it handle the specific error case like a “network error” based on error code or type, and display the localized error to the user. And finally if the error isn’t handle in the application, this is the perfect place to raise and display a generic error which says “something went wrong”.

Then the second thing is to inherit each one of you application ViewController from this generic ViewController.

Than, in each ViewController, everywhere there is an error to handle (delegate methods, failure blocks, parsing error…) you just have to forward it to [self handleError:myError].

And finaly you can overwrite this handleError method to manage specifics error like login error if you are on a login screen…

My 2 cents coding style… hope it’s help

Link
Text

Feedbacks from iOS to Redmine

I just push on Github a very simple code which allows your App users to send feedback directly to your Redmine tracker using a MessageUI-like view.

iPhone InterfaceRedmine result

Feel free to suggest any feature or to fork it!

https://github.com/tiboll/Redmine-Feedbacks

Text

Migration de Wordpress à Tumblr

Dernièrement, je me suis posé la question sur la réelle utilité de mon serveur “dédié” (actuellement un serveur virtuel VQ7 chez Hetzner)

Suite aux problème de fiabilité rencontré sur mon précédent serveur (merci Ikoula et Maplateformeweb) je me suis arrangé pour externaliser au max l’hébergement de quelques sites vers des mutualisés et au final, ce serveur n’héberge plus grand chose: Mon blog, Redmine, SVN et quelques autres outils de dev, quelques Wiki,… mais rien ne nécessitant ni performances, ni de réel besoins en uptime.

Qui plus est, un serveur ça demande de l’entretien, des mises à jour, des sauvegardes, de la configuration… etc…

Résultat des courses, mon blog se retrouve ici sur Tumblr après une migration plus ou moins rapide depuis Wordpress.

Ce dernier possède un outil d’export au format XML permettant de récupérer l’intégralité du contenu déjà publié. De son coté, Tumblr possède un API complet permettant de reposter le contenu qui nous intéresse.

On trouve alors quelques scripts (certains mieux fait que d’autres) sur le net, malheureusement très peu, permettant de réaliser cet import de manière plus ou moins automatique. 

Mon choix c’est alors porté sur un petit script en ruby dispo sur Github qui c’est occupé pour moi de reconstruire l’intégralité de mon contenu, avec les bon hashtag et les bonnes dates.

Oubliez cependant la gestion des commentaires (je n’ai trouvé aucun script capable de gérer cet aspect) ou encore la compatibilité des URL (les permaliens ne sont pas géré de la même manière entre Wordpress et Tumblr).

Bienvenu donc sur cette nouvelle version de mon blog, opérationnel pour de nouveaux sujets très prochainement :-)

Text

Start Hudson or Jenkins with Launchd on Mac OS X

Text

GeekTrip à San Francisco

Il y a maintenant un peu plus d’un mois, Boris et moi même revenions d’un voyage gagné grace au concours Smartphone organisé par la SNCF auquel nous avions participé durant l’été sur plateforme iPhone.

Mieux vaut tard que jamais, voici donc le bilan d’un voyage plein de rencontres.

Samedi 20 Novembre 2010: Après un peu plus de 10h de vol, nous arrivons à San Francisco et nous rencontrons notre guide pour la semaine: Philippe Jeudy, inventeur du Geektrip que nous allons vivre pendant une semaine. Le temps de s’installer à l’hôtel est nous repartons nous promener pour la soirée

Dimanche 21 Novembre 2010: Pas de visite prévu, on en profite pour continuer de visiter la ville et aller faire un tour jusqu’au Golden Gates Bridge pour prendre quelques photos.

Lundi 22 Novembre 2010: les hostilité commencent! Notre première rencontre se déroule au Crown Plaza de Palo Alto avec un “venture capital” chargé de trouver des startup prometteuses dans lesquels son client, Panasonic, pourra investir en étant certain du résultat.

Suite de la matinée avec une visite chez Plug And Play Tech Center à Sunnyvale une sorte d’incubateur à l’échelle américaine pour jeune entreprise innovante capable d’offrir un package tout complet pour aider les startup à se lancer: bureaux, datacenter, networking, conférences, partenaires d’investissements…

Ensuite direction Okland de l’autre coté de la baie pour terminer la journée avec BART: Bay Area Rapid Transit où Melissa Jordan et son équipe nous ont présenté leur politique d’Open Data et l’évolution de leurs web services permettant à n’importe quel développeur de pouvoir utiliser les informations fournis par BART (trajets, perturbations, horaires en temps réel…) pour créer ses applications.

Mardi 23 Novembre 2010: Nous débutons la journée par une visite dans les locaux de Twitter accueilli par Marc et Arnaud, 2 développeurs français chez Twitter qui nous parlent de l’état actuel de leurs services: 175 Millions d’utilisateurs, 95 Millions de Tweets par jours, 370 000 nouveaux utilisateurs par jours, et 1 Milliard de requête sur l’API chaque jour.

Nous passons ensuite chez Rhomobile à San José où Adam Blum, CEO de Rhomobile nous a présenté sa solution de framework Rhodes de développement mobile multi-plateformes basé sur Ruby.

Ensuite direction le célèbre Google Plex à Mountain View pour une présentation sur la monétisation des applications mobiles par l’équipe Google AdMob suivit ensuite d’un passage devant le bâtiment Android dans lequel nous n’avons malheureusement pas eu le droit d’entrer.

Enfin, nous terminons la journée par un passage dans les sales office de Microsoft à San Francisco pour une présentation du programme Microsoft BizSpark par Jacob Mullins suivit d’une présentation du développement sur Windows Phone 7 par Kurt Brocket d’IdentityMine.

Mercredi 24 Novembre 2010: La journée commence par une visite chez Seesmic, la société crée par Loic Le Meur. Bastien Vidal et Johann Romefort nous y explique le fonctionnement de l’entreprise ainsi que leur orientation B2B à venir suite à leur association avec SalesForces.

Direction ensuite le Samovar tea lounge où nous rencontrons Holger Luedorf de chez Foursquare pour parler du taux d’utilisation des check-in et des projets de Foursquare en terme de publicité ciblée et localisée.

Nous profitons ensuite d’un peu de temps libre pour faire les touristes du coté des locaux de Facebook, sur le campus de Sanford University et aux headquarters d’Apple. Malheureusement, veille de Thanksgiving la plupart des bureaux sont vides.

1 Infinite Loop

Enfin dernière étape de la journée nous rencontrons Julien Decot de chez Skype dans les locaux d’eBay à San José. Il nous explique comment Skype vise maintenant à s’implanter dans les entreprises avec des solutions de gestions multi-compte centralisé et des solutions de couplage avec une installation téléphonique existante. Il nous parle aussi de la nouvelle cible de Skype en terme de plateforme: les télévisions et leur OS embarqué.

Jeudi 25 Novembre 2010: Day off. Phil nous emmène passer Thanksgiving dans la Napa Valley pour visiter une Winerie et déguster du vin Californien. Comparé à ce qu’on peut trouver dans la région Bordelaise c’est… pas encore ça…

Vendredi 26 Novembre 2010: Dernier jours de vadrouille avant de regagner l’aéroport, nous commençons donc cette dernier journée par nous rendre au Pier 38 pour rendre visite à un autre incubateur d’entreprise d’origine espagnole: Opinno

Enfin, nous terminons notre GeekTrip par une visite chez PlaceCast où Anne Bezancon nous présente sa solution de publicité géolocalisée disponible pour tous les téléphones portable en diffusant les publicité par SMS.

Remerciements:

Plus qu’un bilan, cet article est l’occasion pour moi de remercier les personnes qui ont rendu ce projet possible: Daniel Jasmin, Explolab et la SNCF pour avoir organiser le concours et mis en jeux ce voyage fabuleux. Ingésup, notre école au nom de laquelle nous avons participé à ce concours et qui nous à apporté son soutien tout au long de nos travaux. Les entreprises Plug and Play Tech Center, BART, Twitter, Rhomobile, Google, Microsoft, Seesmic, Foursquare, Skype, Opinno, PlaceCast,… et celles que j’ai pu oublié pour leur accueil et leurs présentations. Et enfin l’excellent Philippe Jeudi, créateur du Geektrip qui nous a trimbalé tout au long de cette semaine pour nous faire rencontrer les acteurs de la Silicon Valley que nous n’aurions jamais pu rencontrer autrement! Merci Phil!

http://www.geektrip.com

Tags: Concours
Text

Concours Smartphone SNCF: Bilan final

Mercredi dernier avait lieu l’annonce officielle du classement final toutes plateformes confondues pour le concours SNCF auquel nous avons participé Boris et moi même.

Et nous arrivons donc 3 ème derrière la société Cap Gemini et la société Mobile2You.

Et pour ce qui est du voyage, nous décollons dans 2 jours.

Sans doute des photos à venir bientôt :)

Tags: Non classé
Text

Pompage et reprises

Tout commence en 1952 (ou 1951 si on compte la date d’enregistrement) en Allemagne:

Et puis forcement les années 80 (1979 en fait) passent par là:

Et puis finalement, quand 2 DJ plutôt pas mauvais repassent dessus… ils remasterisent un peu le bouzin, et paf… la sauce de canard:

C’était le post musique, ça faisait longtemps