Une fois NetBeans installé, il faut télécharger les plugins pour rails et les installer via Tools>plugins>downloaded. Et là, c’est le drame :
L’ordre d’installation des plugins du package n’est pas géré. Du coup, il faut le faire à la main.
Il me manque des plugins mais pas de lien direct pour les charger
Il n’y a pas de quoi sélectionner/déselectionner tout dans la liste des éléments téléchargés
L’installation met beaucoup, beaucoup de temps
Conclusion
Je n’ai peut-être pas eu de chance, et j’avais surement moins de patience qu’avec Aptana mais ça ne c’est pas bien passé. Au final, je n’ai pas résisté à la lenteur d’installation et aux problèmes de compatibilité et de gestion de dépendances de plugins, SUIVANT 🙂
RubyMine
Installation
Nouvelle IDE, nouvelle installation. Soyons clair, il s’agit d’un produit spécifique de développement rails payant (voir tarifs). Mais cela veut dire aussi :
J’ai ajouté mon compte Github et j’ai précisé le projet que je voulais récupérer, aucun soucis pour la mise en place du projet. Puis, j’ai mis mon GemFile à jour pour lancer les tests avec test-unit et avoir quelques statistiques :
group :test, :development do
gem 'sqlite3'
gem 'test-unit'
# Used by rubymine to display test statistics
gem 'ruby-prof'
end
Les messages d’aide sont clairs. Il y a même une popup qui propose un lien pour lancer l’installation d’une Gem manquante.
Conclusion
C’est le seul qui ne m’a pas nécessité une recherche avancée pour installer mon environnement. Et c’est également le seul qui a pu me lancer mes tests sans problème. Je vous l’accorde, ce n’est qu’un début. Je vais profiter du mois de période d’essai pour voir s’il vaut le coût. @bientôt
Partager la publication "IDE rails la suite : NetBeans puis RubyMine"
je pensais publier mon 1er article sur les tests rails cette semaine. Je n’ai malheureusement pas pu le faire suite à des difficultés avec Aptana (sous windows).
Le problème
En fait, il y a des conflits entre la configuration « générale » de rails et la configuration de l’IDE. Le problème aurait pu être rapidement réglé si RadRails proposait une configuration plus fournie via les préférences (définition des paths par exemple). Cette petite mésaventure m’a conduit à plusieurs choses :
La manipulation des paths de mon windows pour remplacer les éléments installés par Aptana par ma configuration
La manipulation des gems « à la main »
L’installation du plugin Aptana pour eclipse (pour voir s’il avait une meilleure configuration)
Conclusion
Il est possible de faire marcher plus ou moins tout ça mais au prix de « bidouillages » qui ne me semblent pas pérennes. Je pense qu’il s’agit en grande partie de l’environnement Windowsien qui est moins accueillant pour ce genre de technologie. Bref, j’ai décidé de me passer d’Aptana et de tester d’autres IDE. Le prochain sur ma liste est Netbeans.
NB: Je suis peut-être passé à côté d’une opération simple, n’hésitez pas à partager votre expérience 😉
Comme promis, nous allons continuer Pibou sous Windows. Au menu du jour :
Installer un environnement de développement Rails sous Windows
Récupérer le projet Pibou qui est resté au chaud sur github
Tester le déploiement du projet sur heroku depuis Windows
Ruby & rails
Pour installer Ruby sur notre poste, nous allons utiliser rubyinstaller & ruby developement kit (outils pour les extensions natives) téléchargeables tous deux sur http://rubyinstaller.org/downloads/
Une fois Ruby installé, nous trouvons tout ce qu’il nous faut dans C:\Ruby193\bin (par défaut) et RubyGem prêt à servir
Nous allons profiter de problèmes de compatibilité pour mettre à jour le Gemfile
Petite mise à jour de Rails en 3.2.8
gem 'rails', '3.2.8'
Nous allons passer therubyracer dans le scope de production
group :production do
gem 'pg'
gem 'libv8', '3.11.8.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', :platform => :ruby
end
Un bundle install plus tard et nous sommes à jour
N’oublions pas d’indexer nos changements
git add Gemfile Gemfile.lock
Puis de les ajouter au dépôt local
git commit -m « Worked on the configuration to develop under windows »
Ensuite, il faut nous connecter au service heroku via une commande lancée à la racine du projet
heroku login
Ajoutons la clé ssh de notre nouvelle machine
heroku keys:add
Ajoutons le dépot heroku à nos dépots distants
git remote add heroku git@heroku.com:pibou.git
Et envoyons nos modifications sur le dépôt distant heroku (ça prend un moment):
git push heroku master
Finalement ca marche
Nous y sommes! Ruby et tous ses amis se sont invités sur notre Windows sans trop de soucis. Git ne semble pas récalcitrant et Aptana s’est montré docile, que demander de plus ?
Nous allons pouvoir reprendre le développement de Pibou sous Windows et découvrir Aptana
@bientôt
Partager la publication "Reprise de Pibou : Git, Rails et Heroku avec Windows"
cela fait quelque temps que nous ne nous sommes pas vus.
J’ai changé d’environnement de travail et je suis retourné sous Windows. Point de moquerie je vous prie…
Allez, comme j’aime partager mes découvertes, je vous propose quelques liens pour améliorer vos conditions de travail :
Une idée toute simple circule sur le net, le code and coffee. Concrètement, c’est juste un prétexte pour que les gens se croisent et discutent. On s’installe dans un café ou n’importe quel espace qui permet de partager, coder, twitter etc…
Et surprise, je retombe que sur les mêmes visages qu’a Sudweb. C’est bon enfant, on peut aborder n’importe quel sujet, qu’il soit technique ou non. Ca permet aussi de trouver des gens qui font du ruby ;), de partager ses expériences et de se détendre avant une rude journée. Si je ne me trompe pas, j’ai pu croiser @dplaindoux@hilldude@joelazemar et @AntoineCezar
Le mot de la fin
C’est un bonne expérience malgré le réveil un peu difficile. Finalement, nous étions un peu plus dans le #tweetandcoffee, voir le #tweetandtea ;). Je pense que ça vaut le coup d’y aller au moins une fois de temps en temps pour échanger avec des gens de tous horizons, améliorer son réseau ou tout simplement passer un bon moment.
@+
Partager la publication "Code and coffee à Toulouse – découverte"
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.
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 :
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
Partager la publication "CodeSchool – Rails Testing for Zombies"
Dans 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.
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.
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.lockconfig/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
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
Partager la publication "Pibou dans les nuages avec Heroku"
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.
Idées & sujets à explorer
Sélection des idées d’articles à partir des explorations
En cours de rédaction
La relecture. Toute forme de correction et d’avis sur l’article (orthographe, syntaxe, clarté)
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
Partager la publication "Trello, le tableau de bord qui ne se prend pas la tête"
Dans l’article précédent, Pibou – scaffolding & structure, nous avons ajouté la notion de film et nous avons utilisé la génération de code. Il est grand temps de mettre en place un gestionnaire de versions.
Gestion des sources
Lors de la vie d’un projet, les sources évoluent sans cesse. Il est donc très important de pouvoir stocker les changements et rendre les sources accessibles à tous les acteurs du projet. Dans cette optique, nous allons utiliser GIT.
Utilisation de GitHub
Afin d’éviter les contraintes de l’installation de la partie serveur, nous allons utiliser un service en ligne : GitHub. C’est un outil bien pratique qui fourni entre autres :
Il existe plusieurs formules d’abonnements, celle de base est gratuite et vous permet 300Mo de stockage publique. Si vous voulez héberger des projets privé, il vous faudra dépenser au moins 7$/mois. Pour plus d’informations tarifaires : https://github.com/settings/billing.
Créer un projet GitHub
La documentation sur GitHub étant très complète, je vous laisse découvrir la création du projet et l’installation de Git (attendez un peu avant d’envoyer le code) :
Tout d’abord, nous nous plaçons à la racine « /pibou »
Ajout des sources $git add -A (le -A permet un ajout de toutes les sources. On l’utilise pour cette fois, mais nous ciblerons dorénavant les fichiers à ajouter)
Si vous n’avez pas encore désigné votre dépôt distant : $git remote add origin git@github.com:<username>/pibou.git
Le code est seulement enregistré en local, pour l’envoyer sur le serveur : $git push -u origin master
N’oublions pas notre configuration ruby! RVM permet de créer un fichier .rvmrc qui fourni une configuration par projet. Pour cela, une petite commande à la racine du projet : $rvm ruby-1.9.3-p125@pibou –create –rvmrc (lire : interpréteur ruby-version@gemset)
Maintenant que nous avons une configuration de l’environnement ruby pour le projet, il suffit de le partager :
Et voilà, votre code est sur le dépôt et vous avez partagé votre configuration rvm via votre .rvmrc. Pour plus de détails : http://beginrescueend.com/workflow/rvmrc/
Et après?
Je vous laisse digérer tout çà. La prochaine fois, nous allons déployer notre application en ligne grâce à heroku. En attendant, vous pouvez accéder aux sources du projet sur https://github.com/jbdoumenjou/pibou
@bientôt
Partager la publication "Pibou – Partage ton code"
La dernière fois, nous avons créé le projet et lancé l’application (Pibou, rails & premier déploiement). Il est temps de réaliser notre première page et de comprendre un peu mieux les rouages du projet.
La magie du scaffolding
Le scaffolding est tout simplement un outil de génération de code dont nous allons nous servir pour créer nos premiers fichiers. La structure sera la plus simple possible: un film possède un titre. Avant de commencer, il faut savoir que Rails utilise un pattern MVC pour la structure du projet.
$rails generate scaffold Movie title:string
On peut revenir en arrière via la commande :
$rails destroy scaffold Movie
Mais intéressons nous plutôt aux fichiers créés ou modifiés lors du generate.
Les données
La génération commence par la création d’un fichier de migration dans « pibou/db/migrate ». Le nom du fichier généré utilise un timestamp et le nom de l’action (create movies). Ce fichier de migration est utilisé pour la mise à jour de la base de données.
Nous allons appliquer la migration via la commande lancée à la racine du projet :
$rake db:migrate
Cette commande permet d’appliquer les migrations au schéma de la base dans « pibou/db/schema.rb ». Pour de plus amples informations sur ces mécanismes : http://guides.rubyonrails.org/migrations.html.
Le model
Dans « pibou/app/models/ », on retrouve notre modèle, dont notre objet fraîchement créé « movie.rb ».
class Movie < ActiveRecord::Base
end
Le contenu de ce fichier peut être déroutant, en fait il est pratiquement vide. Il faut s’habituer à avoir tous les attributs présents dans le schéma de la base : « pibou/db/schema.rb ».
ActiveRecord::Schema.define(:version => 20120311175909) do
create_table "movies", :force => true do |t|
t.string "title"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
end
Les tests
Les tests unitaires se situent dans « pibou/test/unit/ », ils utilisent par défaut des fichiers yaml présent dans « pibou/test/fixtures/ ». Il existe également des tests pour les contrôleurs dans « pibou/test/functionnal/ ». Pour aller plus loin : http://guides.rubyonrails.org/testing.html.
Les contrôleurs
Ils sont présents dans « pibou/app/controllers ». Pour l’instant nous avons 2 contrôleurs :
application_controller.rb qui est le contrôleur dont hérite tous les autres contrôleurs.
movies_contoller.rb qui fourni le comportement et le rendu associé
Ils trouvent dans « pibou/app/helpers » et sont, comme leur nom l’indique, des classes fournissant des méthodes d’aide réutilisables dans les vues (formatages etc…). Dans notre cas, « pibou/app/helpers/movies_helper.rb ». Les tests des helpers sont dans « pibou/tests/helpers ».
Les assets
Trois fichiers sont générés :
« pibou/app/assets/stylesheets/movies.css.scss » pour la feuille de style (sass) spécifique aux films
« pibou/app/assets/stylesheets/scaffolds.css.scss » pour la feuille de style (sass) générale
« pibou/app/assets/javascripts/movies.js.coffee » pour le javascript (coffescript)
Les extensions
Vous avez pu remarquer les extensions « doubles » sur les fichiers telles que .css.scss ou .html.erb, il s’agit d’une convention bien pratique. Prenons le cas .html.erb => il faut lire fichier en erb qui génère du html.
Les routes
Il s’agit du fichier « pibou/config/routes.rb ». Ce fichier est très important et vous aurez à le manipuler avec soin. Il permet de définir la gestion des url : qui répond à quoi. Dans notre cas, la génération a ajouté
resources :movies
Cette ligne spécifie que toutes les opérations de bases sont routées. Pour en avoir le coeur net, une petite commande que vous utiliserez souvent (à la racine du projet):
$rake routes
Vous avez maintenant la liste des url et actions http associées avec un contrôleur. Par exemple :
movies GET /movies(.:format) movies#index
Lire qu’un get sur movies quelque soit le format est redirigé sur la méthode index du contrôleur de movies. Pour simplifier, http://127.0.0.1:3000/movies est traité par la méthode index de movies_controller. Pour plus d’informations : http://guides.rubyonrails.org/routing.html.
L’application
Bon, c’est bien joli tout ça, mais au final on a quoi ? Je vous propose de lancer votre serveur et d’aller voir l’application :
Bienvenue dans votre application, vous pouvez ajouter des films, les voir et les supprimer. Vos données sont sauvegardées dans « pibou/db/development.sqlite3 ». Nous approfondirons dans un prochain article.
Et après ?
Maintenant que nous avons quelque chose à partager, le prochain article abordera l’utilisation de Git et GitHub.
@bientôt
Partager la publication "Pibou – scaffolding & structure"