Différents CMS en Ruby On Rails

Les CMS (Content Management System), ou SGC (Système de Gestion de Contenu), permettent à partir d’une base de référence « pré-fabriquée », de réaliser rapidement de simples sites internet puis de les faire évoluer avec d’autres développements.

Regardons donc ces CMS pour Ruby On Rails parce qu’il n’y a pas que le PHP et WordPress.

RefineryCMS un CMS intéressant pour son back-office user-friendly (beaucoup de javascript et de petites popups sympathiques et un éditeur WYSIWYG très intéressant).

Locomotive un CMS multi-sites avec pas mal de choses intéressantes :

  • Ruby on Rails 3
  • HAML

et d’autres à étudier :

  • Le système de templates Liquid
  • Formastic
  • Carrierwave
  • MongoDB pour la base de données NoSQL et Mongoid (ODM Ruby)

Radiant un CMS très épuré.

Zena un CMS français (cocorico !), pas de back-office tout se passe sur le front : un texte à modifier, cliquer dessus et modifier.

On peut en ajouter quelques autres (12) cités sur cette source.

Ce que l’on peut en tirer de manière rapide (pas le temps de tous les tester), certains se démarquent via leurs interfaces user-friendly et les éditeurs WYSIWYG, d’autres par leurs plugins, d’autres par leurs gestions multi-sites et enfin d’autres avec des gestions de base de données via no-sql.

En conclusion, chacun possède des avantages et inconvénients suivant la tâche qui vous est demandée, à vous de choisir au mieux ou encore de développer un nouveau CMS reprenant les bonnes idées de chacun.

Pour le côté e-commerce, voici un petit CMS sympathique certes léger mais à étudier : Spree. Il fonctionne avec « Rails from 3.1.1 to 3.1.4 only » d’après le site officiel pour la version 1.0.x. Vous avez toutes les informations d’installation sur le site officiel ici.

1 autre ressource qui est un peu moins convaincante Substruct.

Git comme outil de sauvegarde

Git nous permet de réaliser nos sauvegardes et d’accéder facilement à l’historique de celles-ci. Cependant la taille des dépôts augmentent à une vitesse importante et ces dépôts ont tendance à « s’encrasser ».

L’objectif est d’alléger les dépôt. Après de multiples recherches, notamment  git gc, git rebase, nous trouvons notre bonheur avec :

git repack && git prune

Les dépôts se réduisent de manière importante et la vitesse des autres opérations est très accélérée !

http://www.unixgarden.com/index.php/gnu-linux-magazine/git-pour-les-futurs-barbus

Image Magick

Image Magick est un logiciel :

  • libre : GNU / GPL
  • disponible sous GNU/Linux, Mac, Windows et iOS (ne serait-il pas plus performant sous GNU/Linux que sous Windows ?)
  • de traitement d’images,
  • pouvant traiter plus de 100 formats d’images,
  • accessible en ligne de commande, donc permettant :
  • le traitement par lot. Par exemple, convertir toutes les images d’un répertoire en jpg, 800 x 600 pixels, en noir et blanc.
  • l’accès depuis les langages de programmation

Quelques fonctions : conversion de formats d’images, transformations, dessin ou texte sur une image, GIF animé…

Beaucoup d’options sont disponibles. Une documentation très lisible et illustrée est présente sur le site http://www.imagemagick.org.

Erreur Rails 3.1 Could not find a JavaScript runtime

Après avoir créé votre projet rails 3.1 et essayé de le démarrer, vous obtenez le message d’erreur

/usr/lib/ruby/gems/1.8/gems/execjs-1.2.13/lib/execjs/runtimes.rb :in `autodete
ct’: Could not find a JavaScript runtime. See https://github.com/sstephenson/exe
cjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

Un moyen de le résoudre, est d’ajouter l’appel aux 2 gems suivantes dans votre Gemfile

gem ‘execjs’

gem ‘therubyracer’

Et faire un bundle à partir de la ligne de commande.

« can’t convert Fixnum into String » Rails 3 nouveau projet

Si après avoir créé un nouveau projet en Rails 3, vous avez ce message d’erreur :

can't convert Fixnum into String

vous irez voir dans vos logs, et vous ne trouverez rien. Ce qui est assez cohérent puisque jusqu’à présent vous n’avez écrit aucune ligne de code. Mais d’où vient alors l’erreur ?

En fait, dans le fichier database.yml, un mot de passe pour se connecter à une base de données est composé uniquement de chiffres (c’est pas bien mais cela arrive dans certaines circonstances). Or Rails attend une string. Il suffit donc d’ajouter les guillement autour des chiffres.

GIT et mise à jour auto du dépôt privé

Nous allons configurer Git pour un workflow proche d’une simple mise à jour via ftp d’un serveur depuis un client, par exemple un serveur Web depuis les postes de développement. Cela nécessite qu’il mette à jour automatiquement un dépôt privé, sur le serveur, lorsqu’une modification a été réalisée dans le dépôt public.

Pour cela, une fois que git est installé et que vos dépôts public et privé sont en place sur le même serveur, il suffit d’ajouter, dans le fichier « hooks/post-update » de votre dépôt public, avant « exec git-update-server-info » :

Ceci entraînera une action après chaque mise à jour de ce dépôt public. L’action appelée entraînera la mise à jour de votre dépôt privé en faisant un « git pull ». Pour que cette action puisse s’exécuter, il vous faut donner au fichier « hooks/post-update » les droits en exécution avec un chmod.

Et voilà, une synchronisation entre votre dépôt public et privé via Git.

Nombre de pages d’un PDF avec ImageMagick et Ruby

Pour connaître le nombre de pages d’un pdf, on peut utiliser ImageMagick et la commande :

MySQL import : ERROR 1030 (HY000) at line 88: Got error 139 from storage engine

Lors de l’import d’une base de données MySQL au format sql avec la commande,

L’erreur suivante s’affiche :

Voici un lien intéressant :

http://bugs.mysql.com/bug.php?id=25945ENGINE=MYISAM

Il s’agit d’un bug sur InnoDB, le moteur, car la requêtre est trop long, et il faut la V6 de MySQL…

Du coup dans le script sql, il faut aller sur le CREATE TABLE de en question et remplacer :

ENGINE=InnoDB

Par :

ENGINE=MYISAM

Attention, MYISAM est l’ancien moteur de la base de données.

L’import fonctionne à présent.

wp-admin/install.php vide ou blanc

Lors de l’installation de WordPress, si le fichier wp-admin/install.php est vide ou blanc, bien vérifier qu’il n’y a pas de problème d’encodage dans wp-config.php, ce qui peut arriver s’il est édité avec Putty.