Informatique

Pourquoi Ruby et Ruby On Rails dans le développement d'application web ?

Cette question a été posée dernièrement sur la Mailling List de RailsFrance. Effectivement, si on veut promouvoir Ruby dans le monde informatique français, il faut pouvoir argumenter pourquoi on trouve que c'est une bonne idée.

Tout le monde est en droit de se poser la question. Voici donc, pour moi, l'avantage de Ruby par rapport aux autres technologies à l'heure actuelle.

Ruby c'est fun

Matz, quand il a créé Ruby, a voulu faire un langage fun avec lequel il pourrait s'amuser à coder. Aujourd'hui tous les développeurs Ruby diront à peu près la même chose. Coder en Ruby est plaisant. L'avantage de ce point est qu'un développeur Ruby est plus détendu. Un développeur détendu est un développeur plus heureux. Un développeur plus heureux est motivant pour une équipe. Un développeur heureux essayera de faire son travail proprement. L'ambiance d'une équipe de développeur Ruby peut ainsi être agréable. Moins de stress sur un projet, c'est un projet qui part avec un peu plus de chances de réussir.

Ruby aime les tests

La communauté Ruby actuelle est convaincue de l'utilité des tests unitaires. Ainsi, chaque librairie est poussée par la communauté à avoir des tests. Beaucoup de développeurs, moi y compris, privilégierons une librairie avec des tests unitaires plutôt qu'une sans aucun tests.

Cette philosophie permet d'avoir un environnement de développement de test simplifié directement dans Rails. Pas besoin de se prendre la tête pour faire des tests. Si vous ne faites pas de tests de base : soit vous ne voulez pas en faire, ce que je ne recommande pas, soit vous le faites exprès.

Ruby aime le cloud

En ce moment, l'évolution logique du net est le Cloud Computing. L'idée du Cloud Computing est simple. Nos sites internet ne sont plus hébergés sur une seule machine. Les services sont séparés pour améliorer la scallabilité. Au sein de la communauté Ruby, les développeurs sont très attachés à cette idée. Ainsi beaucoup d'utilitaires pour gérer et utiliser son cloud commencent à voir le jour comme Chef. L'architecture même de Rails permet de facilement sortir de Ruby On Rails pour ainsi utiliser son Cloud. ActiveRessource en est la preuve.

Mais coder dans un Cloud implique de coder plusieurs briques. Le Ruby a des bindings pour tous ces utilitaires, comme les systèmes de queues ou les bases de Données Non-Relationnelle. Je ne dis pas que les autres ne peuvent pas le faire. Mais là encore c'est un effet de groupe. Chaque développeur ruby a envie de jouer avec un Cloud. On pense de plus en plus en cloud.

Les plugins de Rails

Ruby On Rails possède une très grande quantité de plugins. On peut ainsi facilement trouver la petite brique que l'on cherche pour sa propre utilisation. C'est plus que l'utilisation d'un module Drupal. Car là nous sommes dans un environement facilement modifiable et sans aucune limitation. Chose que Drupal peut vite avoir.

Les Ressources

Le plus grand reproche que l'on fait actuellement au choix de Ruby On Rails, c'est le manque de ressources. Effectivement, les ressources de développeurs Ruby sont plus faibles que pour d'autres langages. Mais ceci est selon moi un faux problème. L'apprentissage de Ruby et Ruby On Rails est assez simple si on connait la logique Objet. Ainsi, n'importe quel développeur Java peut tout à fait se mettre à Ruby et Ruby On Rails. Donc avec un expert Ruby/Rails, on peut former facilement une équipe complète et compétente.

Cet argumentaire n'engage bien sûr que moi et peut donc être sujet à caution.

[...]
Published on Mer 27 jan 2010 22:47
6 commentaires

Que cherche un développeur dans une offre d'emploi ?

On m'a posé dernièrement cette question. Ça peut sembler bête au premier abord, mais après quelques secondes de réflexion on se rappelle que toutes les offres d'emplois sont pleines d'interrogation.

Donc qu'est ce que j'attends dans une offre d'emploi ?

  • Le nom de l'entreprise :

    Le nom de l'entreprise est toujours pratique ne serait-ce que pour zapper l'annonce si on aime pas cette entreprise. Ou alors rigoler encore plus en lisant l'offre d'emploi.

  • Le cœur de métier de l'entreprise :

    C'est toujours agréable de savoir si on va travailler pour une entreprise qui fait du beurre ou des sites Web. On peut ainsi éviter certains entretiens inutiles.

  • Le nombre de développeurs dans l'entreprise :

    C'est une question plutôt inhabituelle pour un recruteur, mais avoir cette information permet de savoir tout de suite si on sera le geek dans son coin qui sera interrompu pour faire de l'assistance Words alors qu'il n'a plus touché à un windows depuis 3 ans. Au contraire, si on voit qu'il y a une majorité de développeurs, on pourra se dire que ça sera la fête aux trolls. Un développeur aime les Trolls \o/.

  • Les personnes connues :

    Comme dans tous métiers, on connaît certaines personnes de réputation. Cela peut facilement aider un développeur à choisir cette offre d'emploi si une personne connue y est. En revanche, c'est aussi à double tranchant. Certains feront l'entretien juste pour voir cette personne. D'autres zapperont encore plus l'offre d'emploi à cause de cette même personne.

  • L'environnement de travail :

    L'OS utilisé en majorité par les développeurs de la société peut être un très bon indicateur parfois. Typiquement chez AF83 où je travaille encore en ce moment, tous les développeurs sont sous UNIX, soit GNU/Linux, soit MacOSX. Pour beaucoup, cela prouve la qualité des développeurs. Et là encore la guerre aux trolls pourra facilement être ouverte.

  • La contribution Open source possible et faite par l'entreprise :

    Avoir du temps pour faire de l'Open Source selon notre désir est un plus non négligeable selon moi. J'ai énormément de projets open source en cours que je fais en parallèle de mon emploi, mais si je pouvais les faire aussi durant une partie de celui-ci, je serais vraiment heureux. Ensuite le fait que la société produise du code Open Source, peut facilement permettre au développeur de jauger de la qualité du code de cette société. En effet, pourquoi est-ce toujours la société qui doit vérifier le code de ses futurs employés ?

Selon, moi ces 6 points ne sont hélas pas toujours renseignés dans une offre d'emploi et cela serait un plus non négligeable.

[...]
Published on Sam 23 jan 2010 10:40
7 commentaires

RabbitMQ ne marche pas avec Mac OS ?

Il y a quelque semaine, alors que je me remettais tout simplement à l'utilisation de RabbitMQ, j'ai eu un gros problème. Alors qu'il faut configurer les vhost et les utilisateurs de RabbitMQ, impossible de contacter mon service rabbitMQ avec la commande rabbitmqctl. Prévoyant une migration vers Mac OS Snow Leopard et n'ayant pas un besoin urgent de RabbitMQ, j'ai repoussé la recherche du problème.

Mais voilà, maintenant que je suis sous Mac Os Snow Leopard, j'ai réinstaller RabbitMQ pour le réutiliser à nouveau. Et là, surprise toujours le même soucis. Après de longue recherche, je viens enfin de trouver la cause, le hostname.

Que faire si votre noeud de contrôle rabbitMQ n'arrive pas à discuter avec le noeud maitre ?

Très simple, faite un simple hostname -s et ajouter ce hostname en concordance de l'ip 127.0.0.1 dans votre fichier /etc/hosts. Ça y est tout fonctionne. C'est parfois tellement simple la résolution d'un problème.

English translation

[...]
Published on Mer 04 nov 2009 21:53
1 comment

Le logger ruby avec son bloc

Alors que je m'amusais à étendre le Logger de base de Ruby, j'ai découvert que l'on pouvait utiliser le Logger comme ci-dessous :

Logger.debug { "My object is #{self.map(&:id)}" }

Par défaut, on l'utilise en fournissant une string en paramètre comme ceci : Logger.debug("My object is #{self.map(&:id)}").

La différence entre ces deux écritures ?

La première permet d'éviter d'évaluer la chaine qui sera loggé si elle n'en a pas besoin. Contrairement à la deuxième qui sera toujours évaluée même si vous ne la loggez pas. Ainsi le temps de traitement pourrais s'en faire ressentir.

Grâce à ça, on peux facilement éviter les fameux :

Logger.debug("My object is #{self.map(&:id)}") if Logger.level == Logger::DEBUG

En effet, ce genre de code est très fréquent en Java, pour gagner un petit peu en performance sans perdre ses logs.

[...]
Published on Mer 21 oct 2009 21:08
0 commentaires

l'OSDC.fr 2009, j'y serais

Le 2 et 3 Octobre aura lieu en première française, un rassemblement de codeur d'environnement différent, l'OSDC.fr. Cette conférence est organisé par les associations françaises de Ruby (RubyFrance), Python (AFPy) et Perl (Mongueurs de Perl). Mais ce ne seront pas les seuls langage qui seront présenté. On peux ainsi trouver des sujets sur du PHP.

En tout cas je suis très heureux de pouvoir y présenter une petite conférence sur Cucumber. J'espère vous y retrouver.

[...]
Published on Jeu 17 sept 2009 15:43
0 commentaires

Watchman en Alpha par JTEK

Un de mes projets chez JTEK est la création de Watchman. Cette application permet d'aider à vérifier la sécurité de son serveur.

Une annonce officielle a ainsi ouvert Watchman en Alpha. N'hésitez pas à le tester.

[...]
Published on Mar 10 mars 2009 10:48
0 commentaires

dev.shingara.fr mis à jour avec Redmine 0.8

Avec la sortie de Redmine 0.8 hier, j'ai mis à jour ma plateforme de développement sous cette nouvelle version. Pour ceux qui veulent des exemples, voici le fichier capistrano que j'utilise pour ce déploiement. Il est prévu pour récupérer les sources à partir de la branche 0.8 stable de redmine.

require 'mongrel_cluster/recipes'

set :application, "redmine"
set :repository,  "http://redmine.rubyforge.org/svn/branches/0.8-stable"
set :domain, "shingara.fr"

# If you aren't deploying to /u/apps/#{application} on the target
# servers (which is the default), you can specify the actual location
# via the :deploy_to variable:
set :deploy_to, "/var/rails/#{application}"

# If you aren't using Subversion to manage your source code, specify
# your SCM below:
set :scm, :subversion

set :runner, "rails"
set :user, "rails"
set :use_sudo, false
set :mongrel_conf, "#{current_path}/config/mongrel_cluster.yml"

role :app, domain
role :web, domain
role :db,  domain, :primary => true

task :update_config, :roles => [:app] do
  run "cp -Rf #{shared_path}/config/* #{release_path}/config/"
end

after "deploy:update_code", :update_config
[...]
Published on Mer 31 déc 2008 08:34
0 commentaires

Et si j'écrivais aussi un peu en anglais ?

Ce que j'écris en français peut par le plus grand des hasard avoir un intérêt pour des personnes anglophile. J'ai donc décidé de traduire certain de mes articles directement en anglais. Typo n'ayant pas encore de support pour le multi-blog (en prévision), j'ai donc voulu avoir un blog vraiment léger. Pour cela, rien de plus simple, j'ai décidé d'utiliser rassmalog.

Si vous voulez donc lire ma prose anglaise suivez le guide. Bien sûr toute correction est la bienvenue au vu de mon pauvre niveau d'anglais.

[...]
Published on Mar 02 sept 2008 20:37
4 commentaires

Le monde du libre fait de la sélection même pour les fêtes

Après avoir lu les remarques de frédéric au sujet de la soirée Firefox 3. Je ne peux m'empêcher de l'approuver et de rédiger ce billet. J'écris rarement pour critiquer quelque chose, mais j'avoue que cette pratique est vraiment anti-libriste.

En effet, la fondation Mozilla trie sur le volet ses invités pour la grande soirée Firefox 3. Que Mozilla fasse une grande fête chez elle avec les invités qu'elle souhaite c'est tout à fait normal. Mais qu'elle annonce une grande fête et ouvre les portes de cette fête à seulement des personnes triés sur le volet en fonction de leur projet open source et de leur contribution au standard du web, je trouve ça affligeant.

Le personne qui permette de faire ces fêtes sont justement les madame Michou. Ceux qui télécharge Firefox et qui trouve juste le produit bien. Par des personnes qui font de l'open source ou contribue à des standards. C'est peut-être même pas des utilisateurs de Firefox. En effet, Firefox n'est pas le seul navigateur à suivre les standards. Que ce soit Opera ou Safari, ces deux navigateurs sont au moins aussi respectueux des standards si ce n'est plus. Là vraiment Firefox me déçoit.

Personnellement, j'aurais largement préféré une bonne réunion à la bonne franquette. Chacun se retrouve sur le champs de Mars avec sa bouffe. Pas de micro, pas de speech pompeux. Juste des gens réuni en un point pour être heureux.

[...]
Published on Sam 28 juin 2008 08:27
0 commentaires

Activer la capture du son sous Linux pour xvidcap

Voulant tenter de faire des screencasts, j'ai jeté mon dévolu juste xvidcap. Durant, mon test, je n'arrivais pas à faire de capture du son. J'avais bien branché mon micro et je pouvais l'entendre dans les enceintes. Mais il n'était pas capturé. je vais donc indiquer toutes les modifications que j'ai réalisé pour que ça marche, car ce n'est pas la première fois que j'ai ce genre de problème.

XvidCap n'écoute que OSS

En effet, xvidcap n'écoute que le point /dev/dsp, il faut donc réaliser la compatibilité OSS si vous utilisez alsa.

Activer la capture du micro

Ensuite, il faut penser à vérifier que la capture du son soit bien activé dans alsamixer. Pour cela, il suffit d'aller sur la partie Capture d'alsamixer. Pour y arriver, une petite tabulation suffit. Le screenshot suivant montre le cas de capture désactivé.

screenshot d alsamixer avec la capture son desactive

Il suffit ensuite d'aller sur les éléments désactivés et d'appuyer sur espace pour valider la capture. On obtient ainsi l'écran suivant :

screenshot d alsamixer avec la capture son active

J'ai ainsi pu enfin réussir mon test de screencast pour réaliser les screencasts que je souhaite.

[...]
Published on Ven 18 avr 2008 19:34
0 commentaires

RSS