Record du monde !
Posted in planet on May 29th, 2008 | Comments Off
Traduction de la news #22
Aucun changement hallucinant dans Rails cette semaine avant la RailsConf -
Comme Gregg le mentionnait la semaine dernière dans le Rails
Envy podcast, ce sont les jours pré-2.1 (Rails 2.1 sera
probablement sorti au RailsConf), ce qui sera une façon
simple de voir pourquoi. Tous les tests de rails passe désormais sur Ruby 1.9
après un long bug sur #module_eval résolu dans le trunk de Ruby
1.9 (voir ce
thread pour plus de détails).
Je serais (pour la première fois) au RailsConf 2008 à Portland, Oregon, ce jeudi prochain - Si quelqu'un souhaite me voir et me reconnaitre avec ma photo de Facebook, s'il vous plait venez me dire salut.
Le rapport de cette semaine couvre les changement du 19 Mai 2008 au 25 Mai 2008 (le jour correspondant à l'enregistrement du Rails Envy podcast).
Vous vous souvenez comment le merge
du gem has_finder à l'intérieur de rails a
permis de faire des choses comme Post.first et
Post.last?
Maintenant vous pouvez allez dans l'étape suivant et utiliser les mêmes méthode dans vos association ActiveRecord. Par exemple:
post = Post.find(1)
first_comment = post.comments.firstSi vous avez récement utilisé named_scope, vous pouvez désormais faire ceci:
post.comments.recent.lastCette belle petite fonctionnalitée a été gentiement apporté par Ryan Bates (oui, le Ryan Bates du fameux Railscasts).
Révision concernant cette fonctionnalités: http://github.com/rails/rails/commit/73c59638549686fccc749ffd3ac53cb533c5fd61
L'enregistreur de cache dans Rails (Memcache, file stores, etc.) peux désormais avoir une méthode exist? qui vérifie si une valeur de cache existe pour la clé de cache. Cela permet aux controllers Rails de disposer d'une méthode fragment_exist? qui permet de vérifier l'existence d'un fragment de cache:
fragment_exist?('example.com/foo/bar')Cette petite amélioration a été gentiement apporté par José Valim.
Révision concernant cette fonctionnalités: http://github.com/rails/rails/commit/99860b72aebe0348f41e82d4710343498d89a84b#diff-2
Vous pouvez désormez créer des enregistrement pour les associations comment ceci:
post.coments.create!(:title => 'Techcrunch') do |c|
c.body = "Rails can't scale"
endCeci est ajouté au changement de ActiveRecord::Base.create indiqué précédement.
Ce patch a été réalisé par (encore une fois) Ryan Bates.
Révision concernant cette fonctionnalités: http://github.com/rails/rails/commit/6cba97d2a449faf21aec9fe9d4434067e414226f
Comme toujours, vous pouvez laissez toutes suggestions pour améliorer cette série de Vivre avec Rails.
Posted in planet on May 26th, 2008 | Comments Off
La multitude d’OS disponible rend le choix de plus en plus difficile. Est-ce qu’il a toutes les fonctionnalités que l’on veut ? J’ai des connaissances dans un, pourquoi passer à un autre ? Est-ce qu’il va y avoir un problème de compatibilité ?
Je vais essayer de faire un tout petit récap des choix que l’on a et de vous donner mon opinion. Bien sûr j’exclus Windows parce que ça fait monter le prix et que ce n’est pas le meilleur système pour Ruby.
Linux
Bon on se tourne naturellement vers Linux quand on installe un serveur dédié, on a le choix de la distribution, on en utilise peut-être déjà une pour le desktop et c’est assez simple. Mais quelle distribution prendre pour son serveur ?
On a dans un premier temps Debian et Ubuntu. L’inconvénient de Debian est l’ancienneté des packages, ça m’a énervé plus d’une fois, obligé d’aller taper dans les dépôts unstable & co. Ubuntu a des paquets plus à jour mais j’ai essayé une fois en serveur et j’ai eu plein de problèmes alors qu’avec la même configuration sur une Debian, tout roulait. Ensuite la récente faille sur OpenSSL m’a fait plutôt peur et j’ai donc envie de migrer vers autre chose.
On trouve ensuite CentOS et Fedora. Tous les 2 basés sur RHEL (Redhat), CentOS a un support plutôt long (on aura des MAJ des paquets sur une longue période) alors que Fedora c’est du bleeding edge et on peut donc avoir des surprises (je pense que c’est rare mais bon on est jamais à l’abri).
Enfin on trouve Gentoo. Gentoo c’est la distribution des geeks, plutôt orientée expert mais avec de gros avantages côté optimisation des paquets avec le serveur. Mais apparemment OVH ne propose que la version 64bits donc des process plus gourmands en RAM (à moins que ce soit le seul choix possible quand le processeur est 64bits, j’ai pas vraiment fait attention).
Pour les puristes Debian et Gentoo sont les principales distributions utilisées côté serveur. Je pencherais plutôt du côté de Gentoo parce que je suis fatigué de Debian et parce que Portage (le système de paquets) me semble être vraiment bien. CentOS peut être une bonne alternative aussi.
FreeBSD
Il n’y a pas que Linux dans la vie, on a aussi plein de *BSD, FreeBSD étant le plus connu. Ports est un système de paquets agréable à utiliser, le système de jail est très intéressant et j’aime bien la philosophie. En plus, DTrace et ZFS sont intégrés ce qui donne un plus non négligeable. Par contre mod_rails ne fonctionnerait pas avec FreeBSD 7 (je ne sais pas si la dernière version corrige le problème).
C’est très probablement le système que je vais utiliser à présent car c’est celui qui me convient le mieux. Il faut juste s’y habituer car il y a quelques différences par rapport à Linux.
Solaris
Solaris est un nid à bonnes idées créé par Sun. DTrace, ZFS et les zones (comme jail de FreeBSD mais en mieux) sont de très très bonnes choses et sont repris un peu partout. On a aussi OpenSolaris, la version open source de Solaris qui reprend tout le système et qui permet à la communauté d’améliorer l’OS.
Solaris est malheureusement peu répandu et même si OVH prévoit de donner la possibilité de l’installer, ce n’est pas encore tout à fait ça (c’est apparemment en bêta mais je ne sais pas comment utiliser les systèmes qu’ils mettent en bêta, si quelqu’un peut me donner la réponse). J’ai aussi un peu peur des problèmes de compatibilité mais si Joyent l’utilise, il n’y a pas de raison.
Conclusion
Voilà pour vous faire une petite idée du choix que l’on peut avoir. Pour moi FreeBSD et OpenSolaris sont ex aequo, ce sont des systèmes de premier choix pour votre serveur. OVH utilise Solaris pour l’hébergement mutualisé si vous vous posez la question.
Ensuite je pense que Gentoo est à prendre grandement en compte si vous ne voulez pas sortir du sentier Linux. Il a tous les atouts d’une distribution de gagnant. C’est aussi celle qu’utilise EngineYard.
Et enfin Debian et CentOS sont de bonnes distributions, plus abordables, mais qui ne frappent pas aussi fort que Gentoo, FreeBSD et OpenSolaris.
Posted in planet on May 26th, 2008 | Comments Off
Pour ceux qui ont des problèmes lors de la signature en ligne de leur déclaration d’impôts sous Linux voici la solution.
Posted in planet on May 26th, 2008 | Comments Off
La mailling liste camping est active en ce moment et l’on y discute beaucoup de la future version 2.0. C’est pourquoi j’ai mis en stand-by le développement de Bivouac dont je prévoyais la version 1.0 pour bientôt !
Posted in planet on May 24th, 2008 | Comments Off
Yaws est un serveur web écrit en erlang, le langage actuellement super hype. Et le petit graphique disponible est plutôt impressionnant.
Posted in planet on May 23rd, 2008 | Comments Off
C'est une bonne idée de conserver son serveur à l'heure, surtout quand celui ci doit communiquer avec le reste du monde.
Sous GNU / Linux il existe ntpdate qui permet de réajuster l'heure à un moment donné en se basant sur des serveurs de temps.
Ce paquet est pratique pour une utilisation ponctuelle et réfléchie.
Toutefois c'est une mauvaise idée d'utiliser ntpdate dans un cron pour conserver sa machine à l'heure.
En effet les décalages de temps, même minces, risque d'entraîner des perturbations (parfois invisible) au niveau des processus en cours.
Nombreux sont les programmes qui utilisent des timestamp ou se base sur l'horloge système pour planifier d'autres tâches.
Si un programme planifie une tache à n+1 et qu'à la prochaine mise à jour de temps ton serveur passe à n+2, certaines tâches ne seront
pas éxécutées.
Le programme dovecot par exemple, s'arrête complètement à chaque mise à jour de temps avec ntpdate.
Pour garder sa machine à l'heure il existe un programme qui tourne en tache de fond : ntpd (paquet ntp).
Ntp ne se contente pas de réajuster l'heure avec les risques que cela comprend.
Lorsque le serveur est en retard il accélère l'horloge système afin de rattraper son retard.
Le temps va donc passer plus vite mais sans perte.
À l'inverse il va décélérer l'horloge si la machine est en avance.
Pour l'installer il te suffit d'utiliser ton gestionnaire de paquet favoris, par exemple :
aptitude install ntp
ou d'utiliser le paquet qui va bien sur le site officiel.
Une fois installé le serveur se lance en démon.
J'ai juste changé les serveurs du /etc/ntp.conf de n.debian.pool.ntp.org vers n.fr.pool.ntp.org pour avoir les serveurs de temps les plus proches.
Posted in planet on May 23rd, 2008 | Comments Off
Je viens de découvrir la polémique qui a animé le début du mois sur le clip Stress du groupe électro Justice par Romain Gavras.
Je dois dire que passé la vision au 1er degré qui ne peut que choquer, 3 tips sautent aux yeux à la fin. Le preneur du son qui prend feu, la caméra pétée et la phrase de fin ‘Ça te fait kiffer de filmer ça, fils de pute?’.
C’est clairement une critique du voyeurisme des médias.
A ce propos je me souviendrai toujours d’un “reportage” diffusé en plein JT il y a bien 15 ans qui montrait une jeune fille dans un pays étranger les jambes prises sous un arbre dans une énorme flaque boueuse que les gens n’arrivaient pas à sortir et qui s’est noyée en direct … Polémique à l’époque ? non. Là ce n’était pas une fiction, information non pertinente, du voyeurisme ultra-violent pur et dur.
Alors polémiquer sur une fiction qui ose balancer un miroir aux médias, il y a de quoi sourire.
Posted in planet on May 23rd, 2008 | Comments Off
Le Linutop est un très petit PC sans écran et disque dur. Il est commun de l’utiliser comme poste de travail léger, essentiellement avec un navigateur web. Il est fourni avec une clé USB avec un Linux installé et une interface XFCE.
J’ai acheté il y à quelques temps la V1 et il me semble intéressant de faire part de l’usage que j’en fais. Je ne souhaitais pas l’utiliser comme poste de travail mais aussi comme serveur léger. Il consomme très peu (moins de 5wats) ce qui permet de le laisser constamment allumé, sans soucis de bruit et d’encombrement.
Tout d’abord il est nécessaire d’installer sur un disque USB externe une distribution si on veut l’exploiter au mieux (notamment les mise à jour de l’OS et l’installation de paquets sans être limité par l’espace disque alloué à l’OS sur la clé USB). Il suffit d’un simple boot sur un live CD depuis un PC et une installation sur le DD externe. Attention si l’on souhaite également utiliser le linutop comme poste de travail il est nécessaire d’installer une distribution récente. En effet le driver AMD/Geode pour X est buggué dans les plus ancienne, il est corrigé dans la Ubuntu 8.04 par exemple.
Ensuite le Linutop peut booter sur le DD externe. J’ai eu des soucis avec un DD externe 2,5” (mais alimenté par une prise PS/2 sur un autre PC). Aucun problème avec un DD 3,5” alimenté directement au courant.
Usages :
Il me manque un équivalent de MPD pour centraliser des vidéos et les voir sur des postes clients. Si vous avez d’autres idées ajoutez un commentaire
Posted in planet on May 22nd, 2008 | Comments Off
Comme le dit Ezra, il n’y a pas à y avoir de batailles entre Rails et Merb, on peut utiliser les 2 ou utiliser celui qu’on préfère. C’est ce que je fais et je m’en porte plutôt bien.
Posted in planet on May 22nd, 2008 | Comments Off