Archives mensuelles : avril 2012

CodeSchool – Rails Testing for Zombies

Aujourd’hui je vais vous parler d’un site qui propose des cours en ligne CodeSchool.

Le service

La structure

L’accroche « Learn by doing » résume bien l’esprit. Les cours sont découpés en chapitres, pour chacun il y a :

  • Une vidéo de présentation des points abordés
  • Une série d’exercices pour appliquer directement les notions du chapitre

Les vidéos et les slides des présentations sont téléchargeables. Vous n’aurez besoin que de votre navigateur pour réaliser les exercices, nul besoin d’environnement de développement.

La philosophie

L’esprit est résolument fun et bon enfant. Les exercices permettent de gagner des points, un peu comme un jeu vidéo. Ces points sont utilisables pour débloquer des aides lorsqu’un exercice vous bloque. L’obtention de badges augmente la sensation de progression dans les niveaux du cours. Vous pouvez partager vos succès sur twitter.

La politique commerciale

J’ai commencé l’utilisation de CodeSchool avec un cours gratuit http://www.codeschool.com/courses/rails-for-zombies. Puis un cours payant: http://www.codeschool.com/courses/rails-best-practices pour environ 40$. Lorsque vous finissez un cours, vous avez des réductions pour des livres, d’autres sites d’e-learning et les cours suivants. Vous avez deux approches pour acheter :

  • Acheter les cours à l’unité (aux alentours des 50$)
  • Avoir un abonnement mensuel (25$/mois) qui vous donne un accès illimité aux cours et screencasts. (Détails : http://www.codeschool.com/enroll)

Rails Testing for Zombies

La forme

Graphiquement très agréable, on repère facilement où on en est dans le chapitre. La structure des cours est efficace et permet une bonne assimilation des sujets présentés. Par rapport au premier cours (rails for zombie), les messages sont plus explicites et les exercices plus clairs.

Le contenu

Ce cours aborde rapidement mais efficacement le Test Driven Development puis les différentes sortes de tests. Les exercices proposent d’utiliser les outils de base puis de compléter ou de remplacer par des frameworks comme :

Le cours est suffisant pour mettre en place une bonne politique de tests. Les exercices sont progressifs et on valide les étapes avec plaisir.

Ce que j’ai aimé

  • La liberté totale, aucune contrainte d’environnement, un simple navigateur est suffisant
  • Le coté jeu vidéo
  • La qualité du contenu
  • Les progrès réalisés depuis le premier cours testé
  • Le compte en accès illimité
  • La vidéo de clôture et les références

Ce que j’ai moins aimé

  • Les messages d’erreur parfois tronqués
  • Le système de points pourrait être mieux exploité (reward, débloquer des niveaux bonus)
  • J’aurai aimé un point sur rspec et un peu plus d’informations sur l’intégration continue
  • Ca se fini trop rapidement, on en veut encore 😉

Le mot de la fin

CodeSchool est vraiment un outil d’e-learning intéressant et bien ficelé. Il évolue bien et propose des tarifs qui me semblent honnêtes. L’article sur les tests sur Pibou est fortement inspiré de ce cours.

N’hésitez pas à tester CodeSchool ou à partager vos bon plans d’e-learning.

@bientôt

site officiel d'Heroku

Pibou dans les nuages avec Heroku

site officiel d'HerokuDans l’article précédent, Pibou – Partage ton code, nous avons ajouté les sources du projet sur Github via Git. Nous allons maintenant déployer le projet sur Heroku.

A quoi ça sert Heroku ?

Heroku est un service en ligne qui permet de déployer des applications dans « le cloud ». Concrètement ça permet :

  • De ne pas se soucier de l’infrastructure serveur
  • D’adapter les ressources en fonction de ses besoins (puissance/budget)
  • De profiter de git pour envoyer ses sources dans les nuages

Comment ça marche ?

Heroku utilise Git pour déployer l’application. Il s’agit en fait d’un nouveau dépôt de sources. Quand on pousse ses sources vers Heroku, il s’occupe de tout. Il faut quand même faire un peu de configuration. Pour aller plus loin -> http://www.heroku.com/how.

Mise en route

La documentation est bien faite, nous allons en profiter -> https://devcenter.heroku.com/articles/rails3.

Installation

Installer les outils ->  https://toolbelt.herokuapp.com/

Avoir un compte Heroku

  • Pour utiliser le service, il faut un compte. 😉 Ça se passe par ici -> https://api.heroku.com/signup Une fois l’enregistrement terminé, nous pouvons nous connecter via une commande lancée dans le Shell à la racine du projet : $heroku login
  • Lors de votre connexion au service, si on ne vous propose pas l’ajout de votre clé publique, vous pouvez le faire via la commande : $heroku keys:add
    Pour plus de détails -> https://devcenter.heroku.com/articles/keys

Configurer la base de données

Par défaut, nous avons des bases sqlite pour les tests, le développement et la production. Heroku demande une base en PostgreSQL. Nous allons donc :

  • Installer PostgreSQL sur son poste. Si vous rencontrez cette erreur https://gist.github.com/2400759, il suffit d’installer  la lib libpq-dev.
  • Mettre à jour le Gemfile pour prendre en compte la dépendance vers la gem ‘pg’ en environnement de production. Concrètement,  on modifie le fichier /pibou/Gemfile avec ces lignes :
group :test, :development do
  gem 'sqlite3'
end

# for heroku environment
group :production do
  gem 'pg'
end

  • Mettre à jour ces dépendances via la commande lancée à la racine du projet : $bundle install

Synchronisation des sources avec le dépôt Heroku

Le déploiement d’un projet sur Heroku se fait via l’envoie des sources sur un dépôt Git. Nous allons donc rajouter les fichiers que nous avons modifiés puis les envoyer sur nos dépôts :

Ajout des sources en local
$git add Gemfile Gemfile.lock config/database.yml
$git commit -m « Updated the dependencies »

Envoie des sources sur notre dépôt GitHub
$git push origin master

Déploiement Heroku
$git push heroku master

Mise à jour de la base de donnée distante

Tout se résume en une simple commande lancée à la racine du projet:
$heroku run rake db:migrate

Où est l’application ?

Si vous regardez votre Shell attentivement, vous verrez l’url de déploiement, pour moi -> http://pibou.herokuapp.com

En bref

Ce que nous avons réalisé :

Et après ?

Maintenant que nous avons une application déployée et un code partagé, nous allons pouvoir développer notre application de gestion de films. Mais pour bien faire, nous avons besoin de mettre en place des tests, ce sera le sujet suivant.

@bientôt

 

Trello, le tableau de bord qui ne se prend pas la tête

Aujourd’hui je vais vous parler de Trello, un outil bien pratique et gratuit!

Mais à quoi ça sert ?

J’en vois plusieurs usages :

  • Une liste de choses à faire (course/tâches de la journée)
  • Un support de gestion de projet
  • Un outil d’organisation d’idées

Pourquoi utiliser une application en ligne ?

  • Accessible depuis n’importe quel navigateur
  • Possibilité de partager ses tableaux avec d’autres personnes
  • Les données sont mises à jour en direct. Si je change un élément de place, tous les navigateurs ouverts sur le même tableau seront mis à jour (presque) en temps réel.
  • Limiter la déforestation 😉

Exemple d’utilisation – le suivi des articles du blog

Je me suis créé des colonnes qui correspondent aux différentes étapes du processus de création d’un article.

  1. Idées & sujets à explorer
  2. Sélection des idées d’articles à partir des explorations
  3. En cours de rédaction
  4. La relecture. Toute forme de correction et d’avis sur l’article (orthographe, syntaxe, clarté)
  5. Les derniers articles publiés
Je déplace la carte qui représente l’article en fonction de son état d’avancement.

Ce que j’ai aimé :

  • La simplicité d’utilisation, on adapte rapidement le tableau à ses besoins
  • Pouvoir reprendre facilement le travail où je m’étais arrêté
  • Les options par carte (liste à cocher, commentaire, vote, etc..)

Ce que j’aurais aimé:

  • Tester le travail collaboratif (je n’en ai pas eu l’occasion)
  • Une notion de temps passé sur les cartes

Le mot de la fin

Pour un utilisateur de Scrum ou de Kanban, on peut rapidement trouver ses repères et avoir un tableau de suivi « basique ». Mais il n’est pas nécessaire de connaitre ces méthodes pour utiliser Trello. Il suffit de vouloir organiser son travail sous forme de listes via un outil en ligne. Utilisez-vous aussi des outils similaires ?

@bientôt