M'enfin ?!?

Aller au contenu | Aller au menu | Aller à la recherche

lundi 27 juin 2011

Rails ou Sinatra ?

Ruby on Rails ou Sinatra, comment choisir entre les deux ? C'est une question que j'entends régulièrement et pour laquelle, je suis toujours un peu embêté d'avoir un pointeur tout prêt vers un article qui expliquerait cela. Encore aujourd'hui, la question m'a été posée et j'ai eu beau chercher, je n'ai rien trouvé de bien concluant.

On est jamais mieux servi que par soi-même, et c'est donc l'occasion de réveiller ce blog qui commençait à prendre la poussière.

Donc Rails ou Sinatra ? Ça dépend mais la plupart du temps, il est assez facile de choisir l'un ou l'autre. Ils ont des philosophies assez différentes et couvrent ainsi des problématiques différentes.

Commençons par Ruby on Rails. Il a été développé par David Heinemeier Hansson pour développer des applications web rapidement mais en gardant du code maintenable. Rails est donc fait pour permettre aux personnes dont le métier est de construire des applications web (développeurs, intégrateurs, etc.) de pouvoir faire ça le plus efficacement possible. On retrouve ainsi le scaffold qui permet de gagner du temps en début de projet et de nombreuses conventions pour aller plus vite dans les cas courants. Mais cela a aussi des inconvénients : Rails est un gros framework et apprendre à s'en servir correctement demande un investissement initial en temps qui est loin d'être négligeable. Si on veut vraiment être efficace, il faut respecter l'esprit de Ruby on Rails et ses manières de faire, mais aussi connaître les bibliothèques qui vont bien, les fameuses gems comme Devise ou Sass.

De l'autre coté, Sinatra a des ambitions toutes autres : il veut juste permettre à des développeurs Ruby de faire des applications web simples avec le minimum d'efforts. Cela commence avec une API extrêmement simple qui permet de démarrer tout de suite sans avoir à apprendre grand chose. Pour cela, Sinatra se contente du minimum et n'essaye pas d'offrir plein de choses dès le départ. C'est ainsi un projet avec une taille beaucoup plus réduite mais qui offre plus de libertés. Là où les projets Rails sont toujours organisés d'une façon semblables pour permettre aux développeurs et intégrateurs de passer facilement d'un projet à l'autre, Sinatra est bien plus souple et peut, par exemple, venir ajouter une interface web à un projet déjà existant. Sa simplicité est également intéressante pour les débutants qui peuvent ainsi faire très rapidement des choses sans avoir, au préalable, à lire un bouquin complet. Et rien n'interdit de passer à Rails plus tard.

Pour résumer, Ruby on Rails est un rouleur compresseur qui permet de construire très rapidement des applications web de qualité pour les personnes dont c'est le métier, alors que Sinatra couvre d'autres besoins : il permet de découvrir Ruby ou le développement web en douceur pour les débutants et offre une souplesse incroyable pour les hackers confirmés.

dimanche 21 novembre 2010

Nouveau joujou : Giada Slim n10

J'ai acheté un Giada Slim n10. Ça ressemble à ça :

Giada Slim n10

J'ai commencé à jouer avec en installant dessus :

  • une debian (pas de problème particulier)
  • OpenSSH, évidemment
  • Bip, un proxy IRC
  • Nginx, un serveur web
  • Sllh pour avoir ssh ET https sur le port 443.

L'achat est tout neuf, donc je n'ai pas encore beaucoup de recul, mais dans l'ensemble, j'en suis très satisfait. Un seul regret, le ventilo n'est pas aussi silencieux que je le voudrais. J'ai trouvé sur un forum comment régler ça dans le bios, mais ce n'est pas encore parfait. Pour mémoire, ça se règle dans le menu chipset > MCP fan control, et les valeurs à renseigner sont :

  • SMART Fan0 Min temperature : 40 (la valeur se modifie avec les touches + et -)
  • SMART Fan0 Max temperature : 90
  • SMART Fan0 Min duty cycle : 30
  • SMART Fan0 Max duty cycle : 255

dimanche 11 juillet 2010

Présentation rapide de Ruby 1.9 aux RMLL

Cette semaine, s'est tenue la 11ème édition des Rencontres Mondiales du Logiciel Libre à Bordeaux. J'en ai profité pour faire une présentation rapide de Ruby 1.9. Les slides sont en ligne sur http://rmll2010-ruby19.heroku.com/.

Un ami, oz, m'a prêté le livre Confessions of a public speaker de Scott Berkun. C'est u livre très intéressant qui vous donne des conseils pratiques sur comment donner de meilleurs présentations. Je n'ai malheureusement pas eu le temps de le lire entièrement avant ma présentation aux RMLL, et encore moins d'appliquer les conseils, mais j'ai vraiment le sentiment que les conseils sont pertinents et m'auraient permis de faire une bien meilleure présentation. En tout cas, je suis bien décidé à essayer d'en appliquer quelques uns à la prochaine présentation que je ferais, puis de plus en plus si cela marche comme prévu.

mercredi 9 juin 2010

French_Rails compatible avec Rails3.0.0.beta4

Une nouvelle version beta de Rails3 vient de sortir. Elle utilise une version plus récente d'i18n, ce qui faisait que mon plugin French Rails ne fonctionnait plus. J'ai corrigé ça et sorti une nouvelle version : la 0.2.2.

dimanche 23 mai 2010

Se fixer des objectifs SMART

Se fixer des objectifs est très souvent une bonne chose. Pour tirer pleinement profit de ces objectifs, il est important de bien les formuler. Pourtant, nous avons souvent tendance à nous contenter d'objectifs flous : je veux perdre du poids, je veux faire plus de sport, je veux manger plus sainement, etc. Il existe un truc qui pourra vous aider pour ça : les objectifs SMART. Ce sont 5 critères qui vous forcent à vous poser les bonnes questions quand vous choisissez un objectif :

  • Spécifique : soyez précis sur ce que vous voulez atteindre. Ne vous contentez pas de dire que vous voulez faire du sport, mais demandez-vous quel(s) sport(s) et à quelle fréquence.
  • Mesurable : à tout moment, vous devriez être capable de savoir si vous avez accompli votre objectif sans savoir à réfléchir. Idéalement, vous devriez juste avoir à comparer une mesure avec votre objectif pour savoir si vous l'avez atteint. Si vous souhaitez perdre du poids et que vous fixez comme objectif de perdre 3 kilos, il est alors facile de vous peser pour voir si vous avez perdu ces 3 kilos ou non.
  • Atteignable : votre objectif doit être ambitieux, mais vous devez pouvoir l'atteindre. Si vous n'êtes pas sûr de pouvoir le faire, peut-être feriez-vous mieux de le découper en plusieurs étapes et vous fixer des objectifs intermédiaires. Plutôt que de vouloir courir directement un marathon, commencez par courir 10 Km, puis passez au semi-marathon avant de viser le marathon.
  • Réaliste : votre objectif ne doit pas dépendre de ressources matérielles (argent, matière, temps) que vous n'avez pas. De même, il ne doit pas dépendre du comportement d'autres personnes. Si votre objectif est d'obtenir une promotion, demandez-vous si vous êtes vraiment en position de faire la différence. Une astuce consiste à transformer un objectif qui porte sur des résultats qui ne dépendent pas de nous en un ou plusieurs objectifs sur des moyens pour obtenir ce résultat. Par exemple, un meilleur objectif pourrait être de finir tel projet en avance, ce qui augmenterait grandement vos chances d'obtenir la promotion visée.
  • Limité dans le Temps : fixez-vous une date limite à laquelle l'objectif devra être accompli. Sans ça, vous risquez très fortement de laisser glisser vos objectifs, privilégiant toujours les tâches urgentes et remettant vos objectifs à plus tard.

Voilà, j'espère que ces 5 critères vous permettront de mieux cerner vos objectifs, et d'augmenter ainsi les chances de les réussir.

dimanche 28 février 2010

Discipline contre motivation

Comme beaucoup de personnes, il vous est arrivé d'essayer de prendre de nouvelles habitudes. Ces résolutions vous semblaient être les bonnes choses, et avec un peu de discipline, ça n'aurait pas dû être difficile de les tenir. Pourtant, au bout d'une semaine ou deux, vous constatez que c'est un échec.

Que s'est-il passé et comment faire en sorte de réussir la prochaine fois sont sûrement deux questions qui vous trottent dans la tête. Je ne prétends pas avoir toutes les réponses, mais je souhaite vous proposer une piste qui, je l'espère, pourra vous aider dans vos réflexions.

La discipline

Comme moi par le passé, vous vous êtes sûrement dit que prendre une nouvelle habitude ne devait pas être difficile. C'est juste une question de volonté et de discipline après tout. Et c'est justement là que le bât blesse.

Nous n'avons qu'une quantité très limitée de volonté que nous pouvons utiliser chaque jour. La majeure partie du temps, nous nous reposons sur des habitudes ou nous faisons des choses plaisantes qui ne demande aucune volonté. Demandez-vous combien de fois avez-vous réellement fait preuve de volonté aujourd'hui ou hier ? Pour ma part, la réponse est invariablement bien peu (trop peu).

Alors, est-on condamné à ne pouvoir faire que très peu de nouvelles choses, et à faire ça dans la douleur ? Non, non et NON ! Il existe d'autres leviers qui vous permettront d'avancer. La motivation est l'un d'eux.

La motivation

La motivation, c'est un ensemble de moyens pour vous encourager à faire une action, quand se dire que « c'est la bonne chose à faire » ne suffit plus. Ce sont les carottes pour vous faire avancer. Il existe de nombreux moyens pour se motiver, mais généralement ceux-ci rentrent dans l'un des deux thèmes suivants : apprécier l'activité en question et s'engager publiquement.

Apprécier l'activité

Il est évident que l'on aura beaucoup plus de facilités à faire une action à laquelle on prend du plaisir que si c'est une corvée. On peut ainsi chercher des éléments qui vont plaisir. Par exemple, se mettre au footing peut ne être très plaisant au début, mais si vous accompagnez votre séance de footing par votre album musical préféré sur un lecteur mp3, cela la rendra plus appréciable.

Si malgré ça, vous avez du mal à rendre l'activité elle-même agréable, vous pouvez compenser en vous offrant une récompense. Pour ma part, je suis un grand gourmand, et manger une barre céréales avant de faire du sport fait partie des choses que j'apprécie. Mettre une croix sur un Seinfeld Calendar a également un coté très gratifiant.

S'engager publiquement

L'engagement public est également un moyen très efficace pour nous aider à tenir une résolution. L'idée est que nous détestons profondément ne pas tenir nos engagements, et nous pouvons nous servir de ça pour nous mettre un peu de pression (pas trop quand même), ce qui nous forcera à agir.

Par exemple, parler à tous vos collègues de votre nouvelle résolution vous obligera à vous y tenir, car ils reviendront vers vous pour en parler. Et la crainte de la honte de ne pas avoir tenu ses engagements est une source de motivation très puissante.

Parler de sa résolution sur son blog ou sur un forum spécialisé peut également une approche très efficace. Vous vous sentirez engagé à donner régulièrement des nouvelles, et vous aurez peut-être la chance d'avoir des conseils dans les périodes difficiles.

Pour conclure, je vous encourage à essayer de trouver des éléments de motivation avant d'entreprendre une nouvelle habitude. Une méthode pour cela est le le guide pour tenir nos résolutions de nouvel an. Et si vous souhaitez creuser la question de la motivation, il existe un ebook, The essential motivation handbook, très complet sur le sujet, au prix de 15$ (soit environ 11€).

lundi 15 février 2010

Se motiver avec un Seinfeld Calendar

Comme promis, pour vous éclairer sur les ''lifehacks'', je vais donner un premier exemple : le Seinfeld Calendar.

La légende veut que ce soit Jerry Seinfeld l'inventeur de ce hack. Quand on a lui a demandé quel était son secret, il a commencé à répondre de manière plutôt banale : « Pour devenir un bon comique, il faut faire de bonnes blagues, et pour faire de bonnes blagues, il faut travailler chaque jour ». Le secret est donc de s'entrainer tous les jours.

Mais là où ça devient intéressant, c'est qu'il ne s'est pas arrêté là. Il a monté un système ingénieux pour se forcer à travailler chaque jour. Pour ça, le matériel nécessaire est réduit à un calendrier (si possible, assez grand et surtout bien visible) et à un feutre (rouge de préférence). Il explique alors que chaque jour où le travail est fait, il coche le jour sur le calendrier avec le feutre rouge. Au bout de quelques jours, les croix au feutre commencent à former une chaîne, et le but est alors de ne pas casser la chaîne : « Don't break the chain ».

Cette technique est très efficace pour se motiver, car elle nous oblige à dépasser nos excuses. Même si la journée a été difficile, on a envie de cocher sa case pour ne pas avoir à recommencer à zéro une chaîne de 10, 20 ou 30 cases. Par contre, le revers de la médaille est que si l'on rate un jour, même pour une raison valable, le risque est grand de ne pas recommencer tout de suite, voir de ne pas recommencer du tout.

Pour mettre en place cette technique, vous pouvez bien entendu utiliser le calendrier et le feutre, mais si vous pouvez également vous tourner vers une version électronique. Les sites suivants permettent de faire son Seinfeld Calendar en ligne :

Bon, ce n'est pas tout ça, mais je dois vous laisser : j'ai du travail à faire sur LinuxFr.org pour cocher ma case d'aujourd'hui.

Changement de direction pour ce blog

Comme vous avez pu le constater, ce blog est encore moins actif ces derniers temps qu'il n'a pu l'être auparavant. La raison est simple : j'écris principalement des billets techniques autour du web et du développement, or ces sujets sont également ceux que j'utilise pour publier sur le devblog d'af83, la société qui m'emploie.

Pour autant, je ne vais pas fermer ce blog. J'ai toujours des choses à dire dont je ne souhaite pas qu'elle soit associées à mon employeur. Je vais également en profiter pour diversifier ce blog. Cela s'applique dès aujourd'hui avec la création d'une nouvelle catégorie : « Lifehacks ».

Ce terme, lifehacks, est un anglicisme décrivant les astuces, techniques, outils, méthodes et habitudes qui permettent d'optimiser sa vie quotidienne (personnelle et professionnelle). Certains se sont risqués à traduire cela par « astuces de vie », mais je préfère nettement la version originale.

Les lifehacks peuvent concerner la gestion du temps, de la productivité, de la motivation, des connaissances, etc. Bref, beaucoup de choses que l'on aurait tendance à classer dans la catégorie « Développement personnel ». Je vois pourtant une différence importante entre les méthodes de développement personnel et les lifehacks. Les premières cherchent à partir de grands principes généraux, et de ces principes découlent des règles qui peuvent nous aider dans notre vie de tous les jours. C'est un tout que l'on accepte ou refuse en bloc. A l'inverse, les lifehacks sont un ensemble hétéroclites de trucs et astuces faciles à mettre en place dans lequel on peut piocher pour choisir ce qui nous conviennent le mieux.

J'espère que cette courte introduction vous donnera envie d'en savoir plus. Et comme j'ai conscience que ça doit être encore assez abstrait pour vous, je vais rapidement écrire un billet montrant un de ces lifehacks : le Seinfeld Calendar.

jeudi 11 février 2010

FrenchRails compatible Rails 3 (enfin, je crois)

Mon petit plugin french_rails est maintenant compatible avec Rails 3. La version 0.2 vient d'être publiée sur Gemcutter, et j'ai pu l'utiliser sur une application de test en Rails 3 beta. Vous devriez donc pouvoir faire de même.

mercredi 23 décembre 2009

Mise à jour de FrenchRails

J'ai un petit plugin pour Rails qui permet de localiser facilement une application Rails : FrenchRails. Pour ceux qui auraient raté l'épisode précédent, en gros, ça permet de prendre en compte le fait que 0 est un singulier en français (alors que c'est pluriel en anglais).

Je viens de mettre à jour ce plugin pour qu'il traduise également les 'new' et 'edit' qui se balladent dans les URL générées par Rails. Maintenant, ce sera 'nouveau' et 'modifier', ai-je décidé.

Enfin, tant qu'à resortir ce plugin du grenier, j'en ai également profité pour faire quelque chose que j'aurais dû faire depuis un certain temps : le passer en gem. Il est disponible sur http://gemcutter.org/gems/french_rails et peut donc s'installer d'un simple gem install french_rails.

- page 1 de 5