On recherche : chirurgien esthétique pour blogware open source

Le 17 juin 2007 à 11h12 | 7 commentaires

TypoVous êtes un webdesigner ou graphiste de talent, et vous avez envie de vous faire un nom sur le web sans (trop) d’efforts tout en offrant quelques heures de votre temps à un projet open source motivant et motivé ? Cela tombe bien, l’équipe de Typo, le blogware en Ruby on Rails a besoin de vous, et plutôt deux fois qu’une !

Dans le cadre de la préparation de sa prochaine version majeure, Typo est à la recherche d’une bonne volonté pour le remettre graphiquement à neuf façon pub Bio de Danone : ce qu’il fait à l’intérieur doit aussi se voir à l’extérieur. Pour cela, nous avons besoin de deux choses.

Un nouveau thème par défaut

Azure, le thème par défaut de Typo a fait son temps, et il nous faut maintenant passer à autre chose d’un peu plus actuel, tout en restant à la portée du grand public. Étant la première chose que le futur utilisateur voit, le thème par défaut est fondamental, et les features et benefits (cherchez pas, c’est une private joke) de la prochaine version justifient très largement cette refonte.

Les contraintes du projet :

  • Un thème sur deux colonnes, le menu à droite.
  • Un design fluide – au moins jusqu’à une certaine largeur.

Un nouveau thème pour l’admin

L’administration de Typo (login et password : admin) laisse graphiquement à désirer alors qu’un gros travail a déjà été fait sur l’utilisabilité de la chose, et là aussi, une refonte graphique est plus qu’indispensable. Nous avons bien conscience que les zones d’administration ne sont pas la partie vue du grand public et permettant d’améliorer son Page Rank, et que cette partie du site est beaucoup moins attirante, mais nous ne pouvons malheureusement pas rétribuer qui que ce soit pour ce travail : Typo ne nous rapporte pas d’argent – il aurait même tendance à m’en coûter – et nous travaillons dessus bénévolement. La personne qui accepterait de prendre cette partie en charge le ferait donc pour l’amour de l’art

La grand place de Lille

Correction d'un bug majeur dans Typo

Le 13 juin 2007 à 07h20 | 1 commentaire

Plusieurs personnes se sont plaintes de la lenteur des dernières versions de Typo, le blogware en Ruby on Rails, sans que quoi que ce soit dans le code puisse justifier de tels problèmes de performances.

La solution a été trouvée un peu par hasard par Mathijs van Zuijlen : une ligne mal formée forçait le cache à fonctionner en mode testing, ce qui signifiait au final pas de cache du tout. Incidemment, cela empêchait également l’envoi parallèle des trackbacks au moment de la publication d’un billet.

Si vous utilisez la version de développement, la correction est présente dans le Changeset 1477.

Si vous utilisez la version stable de l’application, il vous suffit de commenter la première ligne du fichier vendor/memcache-client/lib/memcache.rb.

$TESTING = defined? $TESTING

Puis, redémarrez Typo.

Sortie de Typo 4.1.1

Le 08 mai 2007 à 09h41 | 2 commentaires

TypoToute l’équipe de développement a le plaisir de vous annoncer la sortie de Typo 4.1.1. Cette version mineure fait partie de notre volonté de raccourcir le cycle de développement de l’application. Bien qu’elle s’attache surtout à corriger les bugs relevés dans la version 4.1, elle apporte aussi son lot de nouveautés.

Prévisualisation des billet

Nombreux sont les utilisateurs de Typo en environnement mutualisé à nous avoir fait part de problèmes liés à la prévisualisation des articles en AJAX. Bien que sympathique, cette fonctionnalité est particulièrement gourmande en ressources processeur. Vous pouvez maintenant la désactiver totalement ou utiliser l’éditeur visuel riche TinyMCE.

Statistiques

Nous avons intégré l’outil de statistiques Sitealizer à l’administration. Il s’agit pour l’instant d’un test, et tout retour de votre part sera grandement apprécié. Nous prévoyons d’y ajouter quelques options de configuration – notamment la possibilité d’activer ou non ce greffon – dans une version à venir.

Traduction en Allemand et Roumain

Le processus de traduction de Typo initié dans la version 4.0 suit son cours. Merci à Alex Deva pour la version roumaine et à Frithjof Eckhardt pour la version allemande.

Sidebars multiples

Il vous est maintenant possible d’appeler des éléments de sidebar depuis n’importe où dans votre code :

<%= render_sidebars \ AmazonSidebar.new \ :title => Citations, :associate_id => justasummary-20, \ :maxlinks => 10 %>

Nous espérons que cela vous permettra de créer des layouts à 3 colonnes plus facilement.

Suppression des greffons de l’application principale

Si vous utilisez la version de développement de l’application, vous avez du constater que certains des greffons ont été retirés de l’application et vivent maintenant leur vie. Nous ne souhaitons laisser que les principaux greffons dans l’application. Un message d’obsolescence vous signale ce fait lors de la migration en 4.1.1. La suppression définitive est prévue pour Typo 4.2.

Documentation

Sprewell, un des contributeurs les plus actifs du canal de discussion #typo@freenode.net a rédigé une importamt documentation orientée utilisateurs. C’est, avec l’intégration de TinyMCE et la refonte progressive de l’administration, un pas de plus vers l’ouverture de Typo au grand public. La balle est maintenant dans le camp des hébergeurs.

Ferrures de la Sainte Chapelle

Le futur des plugins de Typo

Le 15 avril 2007 à 20h35 | 2 commentaires

Ceci est la traduction de The futur of Typo sidebar plugins, billet que j’ai publié en anglais sur le nouveau blog officiel de Typo.

Entre les versions 4.0 et 4.1, l’architecture des greffons de Typo a connu un profond bouleversement. Ces derniers ont été réécrit afin de se conformer au fonctionnement des greffons Rails. Il est désormais possible de les installer via script/plugin install {#PLUGINSOURCEURI}. Le but était de déplacer un certain nombre de greffons du coeur de l’application vers un dépôt officiel.

Pourquoi cela ? Après tout, plus un outil possède de fonctionnalités, mieux c’est, non ? Pas toujours, et voici pourquoi :

  • Typo est lourd par rapport aux fonctionnalités qu’il propose. Le grand nombre de greffons présents en est une des causes.
  • Chaque fois qu’un service change son API, les utilisateurs des greffons doivent attendre la version suivante de l’application. Ce ne sera désormais plus le cas. Nous modifierons le greffon, et les utilisateurs n’auront qu’à le mettre à jour.
  • Il y a beaucoup trop de redondance. Je doute que les gens utilisent à la fois Magnolia et Delicious. Et je me demande combien de gens utilisent VRAIMENT le plugin Xbox Live.
  • Nous souhaitons donner plus de visibilité aux auteurs d’extensions. La mise en place d’un annuaire et d’un dépôt officiels nous aideront à aller dans ce sens.

Nous garderons cependant un certain nombre de greffons au coeur de l’application :

  • Archives. Ce greffon sera activé par défaut dans l’installation de base.
  • Amazon. Cela peut sembler étrange, mais ce greffon est le meilleur exemple dont nous disposions d’interaction entre un filtre texte et un greffon.
  • Catégories. Ce greffon sera activé par défaut dans l’installation de base.
  • Derniers commentaires.
  • Espace statique. Ce greffon sera activé par défaut dans l’installation de base avec la liste des contributeurs de l’application.
  • Tags.
  • Syndication XML. Ce greffon sera activé par défaut dans l’installation de base.

Nous allons entamer le déplacement des greffons ce soir, en commençant par Audioscrobbler et Xbox Live. La migration complète se fera pas à pas avant la prochaine version de l’application. Nous avons conscience que cela risque de casser les blogs utilisant le trunk, à commencer par le mien, et que certaines personnes risquent de s’en plaindre. Cela ne servira à rien de râler : vous utilisez le trunk à vos risques et périls.

la tour saint Jacques emballée

Nouvelles de Typo du 25 mars 2007

Le 25 mars 2007 à 15h34 | 1 commentaire

You can read an English version of this post under the photo.

TypoLa version 4.1 de Typo est sortie depuis maintenant 15 jours, et quelques bugs nous ont été rapportés. À une exception près, ils ont été corrigés dans la version de développement. Une version intermédiaire corrigeant ces bugs devait initialement sortir ce week-end, mais je me suis quelque-peu laissé emporter dans mon élan, et celle-ci devrait être beaucoup plus conséquente que prévue :

Fonctionnalités

Éditeurs de texte

Ajout du support de trois éditeurs de texte différent pour l’écriture / édition de billets, pages et commentaire. Les utilisateurs peuvent maintenant choisir entre :

  • Un éditeur visuel riche (TinyMCE).
  • Un éditeur simple avec la pré visualisation (par défaut).
  • Un éditeur simple sans pré visualisation. L’actuelle pré visualisation permet d’afficher le rendu des greffons de Typo, mais effectue des requêtes constantes sur le serveur, ce qui peut provoquer des surcharges ou ralentissements importants.

Pour l’instant, la configuration de l’éditeur se fait au niveau global, mais elle sera rapidement rajoutée dans les profils des utilisateurs. De même, TinyMCE utilise pour l’instant le thème simple, mais je prévois de rajouter quelques options, et de laisser les utilisateurs choisir entre un thème minimal et des fonctionnalités un peu plus riches.

Statistiques

Typo embarque maintenant le greffon de statistiques Sitealizer, accessible depuis l’interface d’administration. Sitealizer est un greffon encore jeune, mais prometteur, et il est prévu que nous participions à son évolution, notamment en fiabilisant la reconnaissance des systèmes d’exploitation et des navigateurs. Je suis entré en contact avec le développeur du greffon, et nous avons décidé de travailler ensemble.

Ergonomie

Il est enfin possible d’éditer et de pré visualiser les commentaires depuis l’interface “Discussion”. Cette fonctionnalité nous avait été demandée par plusieurs personnes, et elle est maintenant pleinement opérationnelle. De même, pas mal de liens d’évitement, de raccourcis de navigation et autres grigris toujours pratiques ont été rajoutés. Il ne nous manque plus qu’un design convenable pour disposer d’une administration agréable.

Internationalisation et localisation

L’effort d’internationalisation se poursuit. Plusieurs personnes m’ont contacté, et la prochaine version de Typo devrait être disponible en :

  • Allemand.
  • Anglais.
  • Espagnol.
  • Français.
  • Japonais.
  • Portugais brésilien.

Correction de bugs

Pas mal de petits et gros bugs corrigés, comme la notification des utilisateurs via Jabber. D’autres sont en cours d’étude et devraient être corrigés pour la version 4.1.1.

Et où peut-on tester tout ça ?

La plate-forme de test a été mise à jour avec les dernières fonctionnalités, n’hésitez pas à passer voir.

Guiness

Typo 4.1 has been around for 15 days now, and only a few bugs have been reported. Almost all of them have been fixed in the trunk. A bugfix release was planned this week-end, bug I’ve been playing around too much and it will be bigger than expected.

Functionnalities

Text Editors

Users can now choose amongst three text editors for writing / editing articles, pages and comments. Avaliable options are :

  • Rich Visual Editor (TinyMCE)
  • Simple editor with live preview (by default).
  • Simple editor without live preview. Current live preview renders plugins effects but sometimes overloads the servers with constant requests. And it’s as damn slow as it is nice.

The editor configuration is a global option, but it’s soon going to be added to the users profiles. TinyMCE uses the simple theme, but I may add some more functionnalities, and maybe 2 different editors to let users choose between simple and advanced features.

Statistics

Typo now embeds the statistics plugin Sitealizer, which is avaliable through the admin interface. Sitealizer is a young but promising plugin, and we’ve planned to contribute by correcting OS and browsers recognition. I’ve been in contact with its developper, and we’ve decided to work together to improve it.

Ergonomics

You can edit and preview comments through the “Discussion” page. many people have asked for such a functionnality, and it’s now fully operationnal. I’ve also added some navigation shortcuts, and icons here and there. We still lack a correct design to be really happy.

l10n and i18n

I18n effort is still going on. A few people have offered to translate, and Typo next version should be avaliable in :

  • German..
  • English.
  • Spanish.
  • French.
  • Japanese.
  • Brasilian Portuguese.

Bug Fixing

A few bugs fixed here and there. Jabber notification works at least. Some other bugfix will be done for 4.1.1.

Looks promising, any place to test?

The testing platform is now up to date. Just come and have a try, it’s worth it.

Typo 4.1 in the house

Le 10 mars 2007 à 18h33 | 7 commentaires

English version under the French one

C’est avec trois petites semaines de retard que j’ai le plaisir de vous annoncer la sortie de la version 4.1 de Typo, l’outil de publication en Ruby on Rails qui permet à ce blog de tourner. L’enfant et la mère se portent bien, merci.

La liste des changements est très importante, mais on ne retiendra que les plus visibles :

  • Support de Ruby on Rails 1.2.
  • Refonte fonctionnelle complète du back office, et début de la refonte ergonomique qui s’achèvera avec la version 4.2.
  • Support de l’internationalisation avec le plugin localization, et traduction en français.
  • Ajout de la modération à priori des commentaires et des rétroliens.
  • Correction de nombreux bugs et amélioration du code.
  • Support du RSS pour les tags et les catégories
  • Passage des greffons au format Rails, ce qui va permettre de les fournir sous forme de paquetages.

La version 4.2 est prévue dans deux mois, et la roadmap est plus que conséquente :

  • Véritable support d’un workflow de publication avec des rôles assignés aux utilisateurs.
  • Support des blogs multiples sur une même instance de Typo.
  • Passage au plugin Globalization, plus complet.
  • Intégration d’un grand nombre de patchs proposés sous forme de plugins.
  • Terminer la refonte du back office.
  • Support de plus de langues.
  • Ne plus utiliser la fameuse méthodologie de la Rache qui me fait attaquer l’internationalisation et la localisation la veille de la date planifiée de la release.

À ce sujet, le projet recherche des traducteurs pour supporter d’autres langues, et d’un designer qui pourrait travailler sur la partie graphique du back office pendant que je m’occupe de la partie ergonomique.

Vous pouvez télécharger les sources ou installer Typo via la gem :

latop # gem install -y typo
laptop # typo install /chemin/vers/typo

[edit] Il y a un bug dans la migration depuis la version 4.0 : Avant de faire la migration, éditez le fichier db/migrate/056createnotifications.rb et commentez la ligne suivante : drop_table :notifications

Si vous avez déjà commencé la migration et que celle-ci a échoué, commentez les deux lignes suivantes : renametable :notifications, :oldnotifications
drop_table :notifications

Et pour activer le français, décommentez la dernière ligne dans config/environment.rb : Localization.lang = 'fr_FR'

Typo 4.1 out

I’m happy to announce Typo 4.1 release only 3 weeks late. Typo is the Ruby on Rails blogging engine that powers this blog.

The changelog is quite impressive, but I’ll only deal with the visible part of the iceberg :

  • Ruby on Rails 1.2 support.
  • Complete functionnal revamping of the back office, and partial ergonomic rebuild.
  • Internationalization and localization support using localization plugin. The application now runs in French.
  • Comment and trackback default moderation.
  • Lots of bugfixes and code improvement.
  • RSS support for tags and categories.
  • Plugins now use Rails plugin engine. We’re gonna release packed plugins soon.

Typo 4.2 is due in 2 months, and the roadmap is quite impressive :

  • Support of a publishing workflow and users roles.
  • Multiple blogs support with a single Typo instance.
  • Switch from Localization to Globalization.
  • Integrate proposed patchs as plugins.
  • Finish the admin revamping.
  • Support more languages.
  • Stop doing stupid things like starting to support localization the day before the planned release date.

The project is looking for translators a designer to work with me on the admin while I’m doing the ergonomic stuffs.

You can download the source or install Typo via the gem :

laptop # gem install -y typo
laptop # typo install /some/path

[edit] There’s a bug in the migration process if you come from the 4.0 version. Before doing the migration, edit db/migrate/056createnotifications.rb and comment the following line : drop_table :notifications

If you have already started the migration, comment both lines : renametable :notifications, :oldnotifications
drop_table :notifications

quelque-part à Saint Médard

Le futur de Typo passera donc par Paris

Le 07 février 2007 à 20h14 | 5 commentaires

typoDimanche dernier, je me posais de très sérieuses questions quant à l’avenir de Typo, le blogware développé en Ruby on Rails qui permet à ce site de tourner. Je ne reviendrai pas sur la liste des griefs qui me poussaient à envisager un fork du projet – tout en préparant la migration du projet original sur mes serveurs, cohérence quand tu nous tiens – mais cela n’arrivera pas.

Depuis hier soir, je fais partie de l’équipe de développements de Typo, et mon point de vue concernant l’utilisation de HAML dans le thème de base a été pris en compte.

Mes principales priorités pour le projet sont (dans l’ordre chronologique) :

  • L’intégration de mon patch de refonte fonctionnelle de l’administration : passer d’un modèle basé sur les contrôleurs / actions à un modèle de navigation basé sur l’utilisation réelle d’un outil de blogging. Une démonstration est d’ors et déjà visible sur ma plate-forme de démonstration de le version de développement. Les identifiants / mots de passe sont admin / admin.
  • La sortie d’une version 4.1 stable basée sur Ruby on Rails 1.2 et intégrant ma refonte de l’administration le plus rapidement possible, probablement d’ici la fin du mois.
  • Terminer la refonte complète de l’administration, aussi bien en termes fonctionnels qu’en terme d’IHM. Un gros effort sera fait sur l’accessibilité notamment au niveau de la sidebar.
  • Ajouter le support de l’internationalisation sur l’application. Je l’avais fait à l’époque sur la version 2.6.0 pour mon usage personnel, et cela ne représentait rien de vraiment compliqué.

Et pour paraphraser un de nos anciens premiers ministres, la roadmap est longue, mais les releases sont proches.

Porte Maillot, le palais des congrès

Quel avenir pour Typo ?

Le 04 février 2007 à 22h09 | 4 commentaires

typoTypo est un blogware développé à l’aide du framework Ruby on Rails. Il fait tourner ce blog depuis l’abandon simultané de Wordpress et du PHP. Malheureusement, l’avenir de ce projet qui pourrait être de qualité ne prête pas vraiment à l’optimisme :

  • Arrêt total des développement durant plusieurs mois, période suivie par la mise hors service du site principal sans aucune explication officielle durant près de trois mois.
  • Aucune visibilité quant à la possible sortie d’une prochaine version stable – même mineure – compatible avec Rails 1.2.
  • Des corrections et des contributions dont l’intégration prend des semaines, si ce ne sont des mois.
  • Une hémorragie d’utilisateurs qui préfèrent migrer vers Mephisto ou – ironie – vers des outils en PHP.
  • Des développeurs aux abonnés absents, et aucune intégration de sang neuf.
  • Et, dernièrement, le changement pur et simple du système de templates de RHTML vers HAML sans rétro compatibilité qui rend du même coup tout le parc de thèmes de Typo inutilisable.

Le fork d’un projet – c’est à dire sa séparation en deux branches – est toujours douloureux dans le monde de l’open source. D’une part il monte souvent deux communautés l’une contre l’autres là où elles collaboraient parfaitement auparavant, d’autre part, il disperse des talents et des individus qui pourraient travailler ensemble afin de réaliser des applications de grande qualité. C’est aussi un des avantages posés par l’open source : quand un projet est moribond ou va clairement dans le mur, une équipe peut se le réapproprier pour en faire ce qu’il lui semble le mieux, en profitant du travail réalisé auparavant.

J’ai posé quelques questions aux développeurs de Typo quant à l’avenir du projet. S’il s’avérait que la direction actuelle se maintenait, un fork ne serait pas à exclure depuis la version précédant l’intégration de HAML afin d’y ajouter ce qui y manque le plus :

  • Une administration utilisable.
  • Le support de l’internationalisation.

Cette idée est d’autant plus délicate que j’apprécie beaucoup les développeurs et la (petite) communauté rassemblée autour de Typo, mais voir ce projet mourir serait un beau gâchis. L’avenir seul nous dira ce qu’il en est.

les tours du 13eme arrondissement depuis le Kremlin-Bicetre

What futur for Typo ?

Typo is a blogware developped with the famous Ruby on Rails framework. It powers this blog since I quit both Wordpress and PHP. Unfortunately, in spite being an application with a real potential, this project’s futur looks pretty dark to me :

  • Devs have been stopped for a few months. Then the whole website has been out of order for 3 months without any official explanation.
  • Can’t get any information about the next stable release date, which would include Rails 1.2 support.
  • Contributions take weeks or months to be taken into account (I don’t talk about mines).
  • Lots of users are migrating from Typo to Mephisto or – isn’t it irony ? – to PHP based applications.
  • And – last but not least – the base template have been rewriten in HAML which makes them impossible to edit with a simple HTML editor.

Forking a project is never a good thing in the open source world. It creates 2 communities with opposed views and interests when everybody was working fine together before. It’s also a strength of open source : when a project is dying or taking a really discutable direction, some people can restart from what have already been done and make a better product. I’ve been asking the development team some question, and if the project keeps going the way it is today, I think about forking to the last version preceding HAML integration to add what lacks the most :

  • A nice and usable admin zone.
  • i18n support.

I’m really reluctant to this. I like the (small) community built around Typo, and I’ve recently offered to migrate the whole Typosphere site on my server. But I really don’t want to see this project die. Hope to give some news about it soon.

Installer Ruby on Rails, Apache 2.2, mod_fcgid et Typo sous Debian Etch

Le 25 janvier 2007 à 22h33 | 3 commentaires

La version à venir de la Debian apporte son lot de mises à jour intéressantes, et parmi elles, pas des moindres, l’arrivée d’Apache 2.2 en tant que serveur web par défaut et de Ruby 1.8.5, propre à faire tourner Ruby on Rails dans de bonnes conditions. Alors pourquoi ne pas franchir le pas et enfin vous mettre à ce merveilleux framework dont vous entendez monts et merveilles depuis bientôt 4 ans, d’autant qu’on vous prend par la main pour mettre en place votre environnement de développement. Un didacticiel pour vous emmener pas à pas vers le paradis des applications web (rien que ça).

Apache 2.2 et Mysql5

Dans un premier temps, vous allez installer le serveur web Apache 2.2, et la version 5.0 de la base de données MySQL. Ce didacticiel ne traite pas encore de PostgreSQL, mais ça ne saurait tarder.

7el.net:~$ sudo aptitude install mysql-client mysql-server apache2-mpm-prefork apache2.2-common apache2-utils
[...]
7el.net:~$ sudo a2enmod rewrite

Normalement, aptitude devrait vous demander un mot de passe pour l’administrateur. Si ce n’est pas le cas, tapez juste

7el.net:~$ mysqladmin -u root -h localhost -p 'toto'

Mod_fcgid 2.0

Malheureusement pour les utilisateurs de Ruby on Rails – et d’une manière générale pour n’importe quelle application utilisant fastcgi, trac par exemple si vous ne souhaitez pas installer modpython – Etch n’inclut pas le module Apache modfcgid pour la version 2.2 du serveur. Le paquetage est en effet cassé, et seule la version pour Apache 2.0 est supportée. Il vous faudra donc à priori choisir entre :

  • Installer Apache 2.2, PHP5 et vous passer de mod_fcgid.
  • Ou bien installer Apache 2.0 et mod_fcgid, mais vous passer de PHP5 (pourquoi pas).
  • Ou encore backporter mod_fcgid depuis la version unstable de la Debian.

Vous allez donc télécharger les sources de mod_fcgid depuis la version unstable de Debian, puis reconstruire et installer le paquetage.

Commencez par ajouter la ligne suivante à votre fichier /etc/apt/sources.list :

deb-src http://mirrors.kernel.org/debian unstable main contrib non-free

7el.net:~$ sudo aptitude update 7el.net:~$ cd /tmp
7el.net:/tmp$ sudo apt-get build-deps libapache2-mod-fcgid-2.0
[...]
7el.net:/tmp$ apt-get -b source libapache2-mod-fcgid-2.0

Et là, c’est le drame : au moment d’activer le module à l’aide d’a2enmod, dpkg vous annonce “ce module n’existe pas”. Pour une raison que j’ignore, le paquetage n’a pas copié les fichiers fcgid.conf et fcgid.load dans /etc/apache2/mods-avaliable. Pas de panique, vous allez le faire et tout va rentrer dans l’ordre.

7el.net:/tmp$ cd libapache2-mod-fcgid-2.0/debian
7el.net:/tmp/libapache2-mod-fcgid-2.0/debian$ sudo cp fcgid.load fcgid.conf /etc/apache2/mods-avaliable
7el.net:/tmp/libapache2-mod-fcgid-2.0/debian$ a2enmod fcgid
7el.net:/tmp/libapache2-mod-fcgid-2.0/debian$ /etc/init.d/apache2 restart

Toi aussi tu veux un mod_fcgid avec bas de caisse, phasres violets et une sono de 10000 watts ?

Afin de bénéficier de meilleures performances, nous allons modifier la configuration de base de mod_fcgid. Remplacez le fichier /etc/apache2/mods-available/fcgid.conf par ceci :

<IfModule mod_fcgid.c>
  AddHandler fcgid-script .fcgi
  SocketPath /var/lib/apache2/fcgid/sock
  IPCConnectTimeout 6
  IdleTimeout 60
  ProcessLifeTime 6000
  MaxProcessCount 32
  DefaultMaxClassProcessCount 5
  IPCConnectTimeout 6
  IPCCommTimeout 6
</IfModule>

La signification de tout ceci peut sembler obscure, aussi quelques éclaircissements s’imposent.

  • AddHandler fcgid-script .fcgi : nous disons explicitement à Apache d’exécuter tous les fichiers portant l’extension .fcgi avec mod_fcgid.
  • SocketPath /var/lib/apache2/fcgid/sock : le chemin de la chaussette à l’aide de laquelle Apache et le serveur de fcgi vont communiquer.
  • IPCConnectTimeout 6 : timeout d’une connexion à un processus fcgi.
  • IdleTimeout 60 : une application lancée par fcgi se terminera après 60 secondes d’idle. Cela permet de ne pas avoir trop de processus lancés en même temps.
  • ProcessLifeTime 6000 : durée maximum d’un processus fcgid.
  • MaxProcessCount 32 : nombre maximum de processus fcgid lancés en parallèle. À ajuster en fonction de la charge de votre serveur.
  • DefaultMaxClassProcessCount 5 : nombre maximum d’instances d’une même application fcgid pouvant être lancées en parallèle.
  • IPCConnectTimeout 6 : timeout d’une connexion à un processus fcgid.
  • IPCCommTimeout 6 : timeout d’une communication avec un processus fcgid.

Vous ne trouvez pas ça tellement plus clair ? Ce n’est pas grave, et ça ne vous empêchera pas d’avancer plus avant dans ce didacticiel.

Ruby et Gem

Vous allez maintenant installer Ruby, rdoc et irb depuis les paquetages Debian, puis Gem à l’aide des sources afin de bénéficier de la toute dernière version. Gem est le gestionnaire de paquetages de Ruby, un outil absolument indispensable.

7el.net:~$ sudo aptitude install ruby1.8 rdoc irb
[...]
7el.net:~$ cd /usr/bin
7el.net:/usr/bin$ sudo ln -s ruby1.8 ruby

Récupérez maintenant les sources de la dernière version de Gem, actuellement la 0.9.1, et installez la.

7el.net:/usr/bin$ cd /tmp
7el.net:/tmp$ wget http://rubyforge.org/frs/download.php/16452/rubygems-0.9.1.tgz
[...]
7el.net:/tmp$ tar xvzf rubygems-0.9.1.tgz
7el.net:/tmp$ cd rubygems-0.9.1
7el.net:/tmp/rubygems-0.9.1$ sudo ruby setup.rb

Rails, MySQL et fcgid

Il reste que Ruby ne peut pas encore converser avec fcgid ni avec MySQL – ou PostgreSQL si vous avez opté pour cette solution.

Dans un premier temps, il va vous falloir installer les en-têtes des librairies nécessaires à l’installation des gems mysql et fcgid :

7el.net:~$ sudo aptitude install libmysqlclient-dev libfcgi-dev
7el.net:~$ sudo gem install mysql
7el.net:~$ sudo gem install fcgid

Typo

Typo dispose d’un programme d’installation, mais il implique d’utiliser SQLite en tant que base de données. Vous allez donc commencer par récupérer la dernière version de l’application sur Typosphere (hébergé ici à partir de demain ou après demain, le temps de terminer ma conf), et créer une base de données pour votre application.

Pas une mais 3 bases

Nous allons en fait créer 3 bases de données, correspondant aux 3 environnements d’une application Rails : développement, production et test.

7el.net:~$ mysql -u root -p
[...]
mysql> create database typo;
mysql> grant all privileges on typo.* to 'typo'@'localhost' identified by 'typosaibo'
mysql> create database typo_dev;
mysql> grant all privileges on typo_dev.* to 'typo'@'localhost' identified by 'typosaibo'
mysql> create database typo_test;
mysql> grant all privileges on typo_test.* to 'typo'@'localhost' identified by 'typosaibo'

7el.net:~$ cd /var/www
7el.net:/var/www$ sudo wget http://rubyforge.org/frs/download.php/12504/typo-4.0.3.tgz
7el.net:/var/www$ sudo tar xvzf typo-4.0.3.tgz
7el.net:/var/www$ sudo mv typo-4.0.3 typo

Nous allons maintenant configurer la base de données de Typo :

7el.net:/var/www$ cd typo
7el.net:/var/www/typo$ sudo vim config/database.yml
7el.net:/var/www/typo$ sudo rake RAILS_ENV=production db:migrate

Les petites particularités d’Apache 2.2

Parmi les nouveautés d’Apache 2, nous avons le retrait du support des options du .htaccess. Nous allons donc devoir supprimer une ligne de celui de Typo et les ajouter dans le vhost Apache que nous allons créer pour lui.

7el.net:/var/www/typo$ sudo vim public/.htaccess

La ligne incriminée :

Options +FollowSymLinks +ExecCGI

Notre virtualhost va alors ressembler à :

7el.net:/var/www/typo$ sudo vim /etc/apache2/sites-avaliable/typo

<VirtualHost 87.106.13.102:80>
  ServerAdmin root@typo
  DocumentRoot /var/www/typo/public
  Options +FollowSymLinks +ExecCGI
  ServerName typo.t37.net

  CustomLog /var/log/apache2/log.typo.t37.net combined
  Errorlog /var/log/apache2/error.typo.t37.net
</VirtualHost>

Il s’agit évidemment d’une configuration minimale, qui permet à Typo de tourner. Il ne nous reste plus qu’à activer le site et à redémarrer Apache.

7el.net:/var/www/typo$ sudo a2ensite typo
7el.net:/var/www/typo$ sudo chown -R www-data:www-data *
7el.net:/var/www/typo$ sudo /etc/init.d/apache2 restart

Et voilà, ça marche.

Essayez Typo avant de l'installer

Le 14 janvier 2007 à 22h20 | 4 commentaires

typoTypo est l’outil de publication développé avec Ruby on Rails qui propulse ce blog pratiquement depuis ses débuts. Malgré des erreurs de jeunesse, principalement en termes d’ergonomie de l’IHM et des performances, toutes deux en passe d’être réglées dans la version de développement, Typo dispose d’indéniables atouts. On pourra notamment citer une très belle collection de thèmes, une API de greffons particulièrement puissante, la construction de la “sidebar” par simple cliquer / déplacer des éléments, ou une “live preview” particulièrement bien faite.

Afin de permettre au plus grand nombre de découvrir cet outil sans avoir à l’installer, je viens de mettre en place deux plates-formes de test en libre accès :

Vous pouvez accéder à l’ensemble des fonctionnalités de l’application à deux bémols près :

  1. Afin d’éviter le spam, la base de données est remise à zéro toutes les heures.
  2. Dans le même but, les pings vers l’extérieur ont été désactivés.

N’hésitez pas à faire remonter vos impressions, elles seront transmises à l’équipe de développement, ou directement prises en compte ici dans le cas où elles concerneraient l’ergonomie de l’administration actuellement en cours de refonte. Alors enjoy and have fun!.

[edit]
Le lien vers la version stable était cassée. Il est maintenant réparé.

Billets précédents :