Installer RVM et Rails sur Ubuntu

RVM permet d’installer facilement plusieurs environnement Ruby sur une même machine. Mais il apporte un tel confort dans l’installation de Ruby (et en particulier de la version 1.9.2 qui n’est pas encore dans les dépôts officiels de Canonical) que même pour une seule version de Ruby, je ne saurais plus m’en passer !

A l’occasion du recyclage d’un vieux PC, j’ai eu l’occasion de rejouer une installation complète de RVM, dont je note ici les différentes étapes. Notez bien que cette installation n’est valable que pour l’utilisateur courant.

  • Ouvrez le Terminal d’Ubuntu
  • Optionnel : installez curl et git s’ils ne sont pas encore installés
sudo apt-get install curl git
  • Placez vous dans votre répertoire home
cd ~
  • Installez la dernière version de RVM
bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
  • RVM s’installe dans  ~/.rvm/  ; à la fin de l’installation, ajoutez le chargement de RVM dans votre shell
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
  • Fermez votre Terminal, puis rouvrez le.
  • Tapez rvm list known : rvm doit vous donner la liste de toutes les version de Ruby disponibles
  • Installez également les paquets suivants qui sont requis par RVM
apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion
  • Pour installer la version 1.9.2 de Ruby, tapez :
rvm install 1.9.2
  • L’installation de Ruby commence. Lorsqu’elle est terminée tapez :
rvm --default ruby-1.9.2
  • Rvm doit vous indiquer avoir sélectionné la version 1.9.2 de Ruby, qui sera utilisée par défaut lorsque vous ouvrirez un terminal. Pour vérifier, tapez :
ruby -v
  • Ruby doit alors vous indiquer son numéro de version. Tout fonctionne ! Pour changer de version de Ruby, installez-en une autre puis utilisez la commande suivante :
rvm use <no_version>
  • Par exemple
rvm use 1.8.7
  • Pour installer Rails, tapez la commande suivante (en rajoutant -v=x.x.x si vous voulez installer une version précise) :
gem install rails
  • Optionnel : si comme moi, vous avez un message d’erreur en installant rails indiquant l’absence de zlib, vous pouvez essayer les commandes suivantes :
rvm pkg install zlib
rvm remove 1.9.2
rvm install 1.9.2
  • Relancez ensuite l’installation de Rails

Démarrer avec iOS : une application Carnet d’Adresses

M’étant récemment lancé dans le développement d’applications pour les plateformes mobiles d’Apple, je commence un série d’articles qui me serviront de bloc-note et d’aide mémoire pour le développement d’applications iOS.
Mon premier projet est la transcription sous iOS de ma première application Rails : un carnet d’adresses pour gérer les coordonnées de mes amis et de ma famille.
Comme cette série d’article accompagne ma première expérience sous iOS, vous me pardonnerez les approximations et les erreurs que les experts relèveront sans doute ; leurs commentaires sont les bienvenus !

Pour démarrer

Pour démarrer le développement sous iOS, il vous faut :

  • Un Macintosh Intel sous MacOS X 10.6 (Snow Leopard) ou MacOSX 10.7 (Lion)
  • Un compte développeur Apple, pour pouvoir télécharger le SDK (Software Development Kit). Il existe deux niveaux d’accès en tant que développeur : le premier est gratuit, mais ne permet pas d’exécuter les applications développées autrement que dans le simulateur (sur votre Mac, et pas sur un appareil iOS) ; le second est payant ($99 par an), mais permet d’exécuter vos applications sur un iPhone ou un iPad, ainsi que de publier vos applications sur l’AppStore. Enfin, cet abonnement permet de télécharger la version Snow Leopard d’XCode 4, la dernière version de l’environnement de développement d’Apple. Une version payante pour Lion est disponible dans l’AppStore Mac OS X, ainsi qu’une version gratuite de la version 3 d’XCode (mais je ne vous la recommande pas, elle commence à dater).
  • Un iDevice pour pouvoir tester en vraie grandeur vos applications. la solution la moins onéreuse, c’est l’iPod Touch qu’on trouve maintenant à partir de 199€ ; mais si vous voulez utiliser des fonctions spécifiques à l’iPhone ou à l’iPad (téléphone, géolocalisation, etc.), il vous faudra acquérir ou vous faire prêter le matériel adéquat.

Créer son projet

Une fois XCode installé, vous pouvez le lancer pour commencer notre projet. Vous arrivez sur la fenêtre suivante :
Cliquez sur Create a new XCode Project. Comme c’est un projet d’apprentissage, nous allons choisir comme modèle Empty Application.
Choisissez ensuite :

  • Un nom à votre projet : c’est celui qui sera par défaut affiché comme nom d’application.
  • Votre identifiant de société : peut être l’adresse de votre site web en commençant le Top Level Domain (com, fr, org, etc)
  • La variable Class Prefix est également importante puisqu’on la retrouvera devant les objets créés automatiquement par XCode.
  • L’appareil cible : iPad, iPhone ou Universal pour les applications qui tourneront sur les deux types d’iDevice.
  • Trois cases à cocher sont ensuite disponibles : nous allons cocher Use Core Data afin qu’XCode initialise un peu de code pour gérer la persistance de vos contacts (c-a-d leur stockage dans une base de données). Les deux autres permettent de gérer automatiquement la mémoire de votre application, et d’inclure l’architecture des tests unitaires qui si vous les écrivez, vous permettront de vérifier que les modifications dans votre code ne cassent pas votre application. Nous les laisserons de coté pour ce premier exemple.

Cliquons ensuite sur le bouton Next. La boite de dialogue suivante permet de choisir l’emplacement de votre projet sur votre disque ; cochez également la case Create git repository for this project, afin de pouvoir gérer vos modifications de code facilement avec Git.
Cliquez sur le bouton Create : Votre projet est créé, nous allons pouvoir commencer à rentrer dans le vif du sujet…
La suite au prochain épisode !

jQuery Mobile 2e partie : les vues

Le précédent article de notre série sur jQuery Mobile annonçait une suite sur la gestion des vues dans jQuery. Je gère l’affichage des contacts avec un Partial qui est inséré dans la vue elle-même. On a donc la hiérarchie suivante :

Layout => Vue => Partial

Nous avons vu dans l’article précédent l’architecture du Layout, et une partie de la vue elle-même,dont le code complet est donné ci-dessous :

<% content_for :back do %><%= link_to t(:"general.back"),  params[:category] ? categories_path : root_path, :'data-direction'=>"reverse", :'data-icon'=>"arrow-l"  %><% end %>
<% content_for :title do %><%= params[:category] ? Category.find(params[:category]).name : t(:"contact.all") %><% end %>
<% content_for :button do %> <%= link_to t(:"contact.add"), new_contact_path, :'data-icon'=>"add", :rel => "external" %> <% end %>
<%= render "contacts_list" %>
Dans jQM, l'architecture d'une liste est la suivante :
<ul data-role="listview">
	<li>Item 1</li>
	<li>Item 2</li>
	<li>Item 3</li>
</ul>

L’adjonction du data-role « listview » à une combinaison classique ul/li permet de générer une liste dont le rendu est similaire à celui trouvé sur les applications mobiles.

 

 

Le code source du Partial est le suivant :

<ul id="contactslist" data-role="listview"  data-filter="true" data-filter-placeholder="Filtrer la liste..." data-inset="true" class="separator">
  <% @contacts.each do |contact| %>
      <li class="contact"><%= link_to  contact.listname, contact %></li>
    <% end %>
</ul>

Les paramètres passés dans le tag <ul> sont les suivants :

  • data-role : doit être égal à « listview » pour être reconnu par jQM comme une liste.
  • data-filter : si positionné à TRUE, permet d’afficher un champ de filtre au-dessus de la liste ; ne filtre que les données existant dans la liste, alors attention à la pagination !
  •  data-filter-placeholder : permet de modifier le texte par défaut  affiché dans le champ de filtre.
  • data-inset : si positionné à TRUE, permet d’avoir une liste qui ne s’étend pas d’un bord à l’autre de la fenêtre, mais qui laisse un espace sur les bords de la liste ; la première et la dernière cellule voient de plus leurs bords s’arrondir.

Dans le prochain article, nous verrons la création de formulaires avec jQM. D’ici là, n’hésitez pas à laisser vos commentaires !

Premières impressions sur iOS 5

J’ai pu sans trop de soucis mettre à jour mon iPad 2 avec la nouvelle version du système d’exploitation mobile d’Apple, iOS5. Dans l’ensemble, cette mise à jour est plutôt bien pensée, même si certains choix de iDevice cible  sont parfois difficilement compréhensibles.

Passons tout de suite sur l’absence de Siri pour l’iPad 2, alors qu’à priori les caractéristiques de l’iPhone 4s sont similaires à celles de l’iPad 2. C’est de bonne guerre que cette fonction phare d’iOS 5 soit (pour le moment espérons-le) réservée au lancement du nouveau vaisseau amiral des smartphones à la pomme.

L’objet principal de cette nouvelle mouture, c’est vraiment de couper le lien avec le PC/Mac, et de permettre une utilisation complètement autonome, de l’activation jusqu’à la sauvegarde en passant par la synchronisation avec votre bibliothèque iTunes.

Ce que j’ai aimé :

– Le nouveau centre de notifications, qui s’affichent enfin de manière non intrusives sur l’écran. iOS rattrape enfin la concurrence sur un aspect du design du système qui me paraissait très en dessous des standards Apple. Tout se règle dans l’application Réglages > Notifications. Vous avez deux tableaux l’un en dessous de l’autre (Dans ou hors du centre de notifications), mais vous pouvez faire passer les applications de l’une vers l’autre. C’est ainsi que sur mon iPad, la messagerie n’était pas par défaut dans le centre de notifications.

– Le clavier qui se  sépare en deux pour permettre une édition plus facile sur l’écran large de l’iPad. Au début, ce n’est pas facile à utiliser, on a tellement l’habitude de taper de manière non rationnelle avec les deux mains sans vraiment distinguer les deux parties du clavier !

– Quelques modifications cosmétiques dans l’application Musique (ex iPod), mais également la possibilité de supprimer des morceaux de musique directement sur votre appareil sans vous connecter à iTunes.

– Les améliorations dans Safari Mobile : rapidité accrue, gestion des onglets, listes de lecture pour pouvoir lire des pages web plus tard (à l’instar de Read It Later par exemple), et surtout lecteur pour éliminer tout ce qui est autour des articles pour se concentrer sur le contenu.

– L’intégration de Twitter au système. : cela permet de créer des tweets sur tous les éléments des applications système (Safari, Photos, Youtube, etc), un peu comme on pouvait déjà le faire avec le mail. En plus, on peut gérer plusieurs comptes Twitter !

Ce que j’ai moins apprécié

– L’application Rappels, qui permet (enfin !) de gérer nativement les tâches dans iOS, c’est plutôt une bonne chose ; mais pourquoi réserver les notifications géographiques aux seuls iPhones 4 et 4s ?

– L’application Kiosque qu’on ne peut pas classer dans un dossier ! Elle est obligatoirement sur l’une des pages de l’interface de l’iPad. Pour une application que je n’utiliserai jamais !

Ma première rencontre avec Macintosh

La nouvelle nous a tous pris de court ce matin, Steve Jobs nous a quitté. Il y a peu d’entrepreneurs qui auront suscité ce sentiment d’intimité avec ce qu’il faut bien appeler ses fans ; car plus qu’un visionnaire / inventeur / génie marketing, Steve Jobs était la seule rock star de la Silicon Valley.

Un mélange de Brian Wilson pour l’obsession du détail, de John Lennon pour la vision, de Mick Jagger pour l’aptitude à faire le show…

En apprenant sa mort, je me suis remémoré ma première rencontre avec Macintosh. C’était à l’Ecole Technique Supérieure des Municipalités, à Addis Abeba, Ethiopie, où je faisais mon service civil. Après avoir tapé mon mémoire de fin d’études sur un PC avec Word, en utilisant toutes les ressources du clavier et mon imprimante Epson pour faire varier la typographie, je me retrouvais dans un environnement full Mac, du Mac 512k à disquettes jusqu’au Mac Plus avec 1 Mo de mémoire et un disque dur ! A moi les polices de caractères avec Adobe Type Manager, l’affichage tel qu’imprimé, le finder et la souris !

En rentrant en France, j’ai continué à travailler sur Mac : Mac II ci tout d’abord, puis PowerMac 6100. Et même si j’ai depuis abandonné (contraint et forcé !) la marque à la pomme pour mon activité professionnelle, Apple s’est invité dans ma vie digitale avec l’iPod et l’iPad.

Merci Steve.