M'enfin ?!?

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

jeudi 8 mai 2008

Annonces RailsConf 2008

La RailsConf 2008, la grande messe annuelle des railers, aura lieu du 29 mai au 6 juin. A cette occasion, un certain nombre d'annonces devrait être faites. Bien entendu, la plus attendue sera celle de Ruby on Rails 2.1. Mais c'est loin d'être la seule. Coté framework, on devrait également entendre parler de Merb dont la version 1.0 devrait être annoncée par ce RailsConf si tout va bien.

On attend également beaucoup de choses pour les interpréteurs Ruby : arrivée du tout nouveau MagLev, Rubinius faisant tourner des applis Rails, JRuby plus rapide que l'interpréteur Ruby officiel pour les applis Rails ? Pour le moment, ce ne sont que des objectifs (ou au mieux des rumeurs), mais on sent une certaine agitation de ce coté-là.

Enfin, la mode est au moteur de réseaux sociaux, et le RailsConf sera l'endroit pour en parler, mais ceci fera l'objet d'un autre post sur ce blog ;-) Bref, plein de bonnes choses en vue qui me feront regretter de ne pas pouvoir y aller...

mercredi 2 avril 2008

Dossier Ruby on Rails dans programmez

La revue Programmez sort un dossier sur Ruby on Rails. La première partie de ce dossier est sortie ce mois-ci, et la suite sera pour le mois prochain. Si je vous parle de cela, c'est parce que j'ai l'honneur de participer à ce dossier : j'ai écrit le dossier sur Rails et la sécurité. Vous n'aurez plus d'excuses pour ne pas suivre les règles de bases pour s'assurer de la sécurité de son appli rails.

Mise à jour : l'article en question est maintenant disponible sur http://blog.menfin.info/post/2008/0... et également au format PDF.

samedi 15 mars 2008

Afficher la branche Git courante dans le prompt de ZSH

Je suis tombé sur un tips bien sympa : Show Your GIT Branch Name In Your Prompt. Il y est expliqué comment avoir la branche Git en cours dans son prompt avec Bash.

J'ai adapaté ca pour zsh. Voici un extrait de mon zshrc :

export PS1='%~ $(git_branch)%# '

function git_branch {
  git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1) /'
}

setopt PROMPT_SUBST

La seule difficulté fût de se rendre compte qu'il fallait activer une option pour que ca marche, et de savoir quelle était cette option (PROMPT_SUBST en l'occurence).

Ainsi que je suis sous un répertoire normal, j'ai un prompt de la forme ~/Desktop % , et quand je suis dans un répertoire versionné sous Git, ca donne : ~/mon_projet (ma_branche) % . Ce n'est pas grand chose, mais comme il paraît que c'est une bonne pratique de faire des branches sous Git, autant avoir en permance le nom de la branche courante sous les yeux.

PS : j'ai des invitations pour GitHub si ca intéresse des gens.

dimanche 17 février 2008

4ème apéro Ruby

L'association Ruby France organise pour la quatrième fois un apéro Ruby à la cantine. Ce sera l'occasion de discuter autour d'un verre de Ruby et de découvrir la cantine. Il devrait notamment y avoir une présentation de Ruby 1.9 et des lightning talks.

J'y serais et vous ?

Mise à jour : j'ai oublié le lien vers l'annonce officielle.

mardi 12 février 2008

Portrait of a N00b

Steve Yegge, un blogger influent qui travaille chez Google, a posté un article intitulé « Portrait of a N00b ». Comme à son habitude, c'est un très long post où il explique les différences dans la manière de coder (et commenter son code) entre un développeur peu expérimenté et un développeur avec 20 ans d'expérience.

S'en suit une digression très intéressante entre langages à typage statique (Ocaml, Haskell), langages à typage dynamique (Perl, Python, Ruby), et les langages classiques (C++, Java) à typage statique mais qui vous laisse tricher avec les types. On y trouve quelques perles :

If static types are comments, then I think we can conclude that people who rely too much on static types, people who really love the static modeling process, are n00bs.

You can write C++ like straight C code if you like, using buffers and pointers and nary a user-defined type to be found. Or you can spend weeks agonizing over template metaprogramming with your peers, trying to force the type system to do something it's just not powerful enough to express.

Perl, Python and Ruby fail to attract many Java and C++ programmers because, well, they force you to get stuff done.

Mais le plus simple reste d'aller lire l'original : Portrait of a N00b. C'est long, mais ca en vaut largement la lecture. Et si vous avez encore du temps, les autres articles sont aussi des lectures recommandées.

Ai-je précisé que je me retrouve plus dans la peau du dév expérimenté que du N00b, même si c'est un prétentieux, vu que je suis encore vraiment loin d'avoir 20 ans d'expérience ?

mardi 22 janvier 2008

Nouveaux tips pour vim

Voici une nouvelle fournée de tips pour Vim. Pour les retardataires, la première série est toujours disponible par là.

  • CTRL+v reste une valeur sûre : ca active la sélection rectangulaire. Suivie de I, ca permet d'insérer un même texte sur plusieurs lignes. Au contraire, avec x, on peut supprimer une colonne.
  • :Man permet d'afficher une page de man directement dans Vim (avec la coloration syntaxique) ;
  • j'ai rajouté la ligne suivante dans mon vimrc pour pouvoir insérer facilement des Lorem ipsum :
iab lorem Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit.

Voilà, c'est tout pour aujourd'hui.

mardi 4 décembre 2007

J'y serai

Paris on Rails

samedi 1 décembre 2007

Mercurial sur mon MyBook

J'ai installé mercurial sur mon MyBook. Ce n'est pas très compliqué, mais voici quand même la méthode que j'ai utilisée pour ceux qui n'ont pas envie de chercher. La première chose à faire, c'est se connecter en ssh (si sshd n'est activé, vous pouvez le faire grâce à la méthode de Martin Hinner). Ensuite, comme mercurial est en Python, il faut installer Python :

$ cd /tmp
$ wget http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tar.bz2
$ tar xvjf Python-2.5.1.tar.bz2
$ cd Python-2.5.1
$ ./configure --disable-ipv6 --disable-shared --with-cxx=no --with-threads
$ make
$ sudo make install

Puis, on peut passer à l'install de mercurial proprement dit :

$ cd /tmp
$ wget http://www.selenic.com/mercurial/release/mercurial-0.9.5.tar.gz
$ tar xvzf mercurial-0.9.5.tar.gz
$ cd mercurial-0.9.5
$ make
$ sudo make install-bin

Un petit hg -v pour tester, et c'est déjà fini.

IRB, un outil à (re)découvrir

IRB est un outil génial pour tester rapidement un truc en Ruby. C'est une sorte d'interpréteur Ruby qui fonctionne comme un shell : vous tapez une ligne de Ruby, irb l'interprête et vous donne le résultat, vous tapez une autre ligne, irb l'interprête en tenant compte de la première ligne, et ainsi de suite. Voici par exemple ce que cela donne (avec en gras, ce que j'ai tapé) :
>> titi = 2 + 3
> 5
>> toto = titi * 4
> 20
Pour ceux qui veulent en savoir plus, je recommande de lire le chapitre consacré à IRB dans Le Guide (Poignant) de Why's vers Ruby et d'essayer ca dans Try Ruby qui est, en gros, un IRB dans votre navigateur web. Il est possible de configurer IRB via le fichier $HOME/.irbrc : changer le prompt, charger des fichiers, activer l'auto-complétion, etc. Comme d'autres personnes l'ont fait avant moi, je poste mon fichier de conf .irbrc pour que chacun puisse s'en inspirer (et aussi pour le retrouver plus facilement quand je ne suis pas chez moi ;-)
  require "yaml"
require "irb/completion"

IRB.conf[:USE_REALINE] = true
IRB.conf[:PROMPT_MODE] = :SIMPLE

# History with readline
HISTFILE = "~/.irb.hist"
MAXHISTSIZE = 100

# what? (gem install what_methods)
require "what_methods"

# Wirble (gem install wirble)
require "wirble"
Wirble.init
Wirble.colorize

# Just for Rails...
if ENV["RAILS_ENV"]
IRB.conf[:IRB_RC] = Proc.new do
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Base.instance_eval { alias :[] :find }
end
end

lundi 26 novembre 2007

Nouveau disque dur : MyBook World Edition

Je viens de m'acheter un disque dur externe Western Digital MyBook World Edition. La bête doit principalement me servir pour mes sauvegardes, mais avec ses 500 Go, je devrais avoir de la place pour d'autres choses. J'ai choisi ce modèle car je voulais un disque dur branché sur de l'ethernet, pas en usb, et qu'en plus j'avais lu sur http://jeromeandrieux.blogspot.com/... qu'il avait le bon goût de tourner sous linux (les sources du firmware sous licence GPL sont disponibles sur http://support.wdc.com/download/ind...).

Ce que j'ai déjà fait

  1. le brancher
  2. aller sur l'interface web : http://admin:123456@<l'adresse IP du Mybook>
  3. rajouter un utilisateur sur cette interface
  4. activer l'accès ssh grâce à la méthode de Martin Hinner
  5. se logger en ssh dessus avec l'utilisateur créé précédement
  6. désactiver mionet toujours grâce à http://martin.hinner.info/mybook/disable_mionet.php
  7. faire joujou avec l'interface web
  8. et finalement commencer mes sauvegardes à la main (à coups de scp)

Ce qu'il reste à faire

Visiblement, il est possible de faire des choses bien sympathiques comme installer http://vsftpd.beasts.org/ (un serveur FTP bien secure), http://samba.anu.edu.au/rsync/ ou encore http://php.net (en réutilisant le lighttpd de l'interface web) dessus :

Il est également possible de mettre en veille le disque dur d'après http://kyyhkynen.net/stuff/mybook/.

- page 4 de 5 -