Des images dans Simplelog
Posted by JB on 02/02/09 at 12:45
Ma version de Simplelog, disponible sur mon espace Github, supporte désormais l’upload d’images, utilisables ensuite dans les posts ou pages de son choix :

Pour que le tout fonctionne, il faut disposer sur son serveur d’une bibliothèque de traitement d’image pour Ruby. Personnellement j’ai choisi ImageScience pour sa simplicité, mais je viens de me rendre compte qu’il y avait des bugs sur les images PNG. Je vais voir si je peux passer à autre chose pour la suite.
To be continued ;-)
EDIT: je suis passé à RMagick, tout a l’air de marcher pas mal. D’ailleurs pour ma version de Simplelog, c’est mis comme processeur par défaut (pour le moment en dur dans la classe, qui sait peut-être bientôt en configurable) :
class Image < ActiveRecord::Base has_attachment :content_type => :image, :storage => :file_system, :max_size => 5.megabytes, :resize_to => '740x400>', :thumbnails => { :thumb => '100x100>' }, :path_prefix => 'public/assets', :processor => 'Rmagick' validates_as_attachment end
ActiveRecord::Base.logger = Logger.new(STDOUT)
(thanks)
Installation de MongoDB sous Karmic
Posted by JB on 12/01/10 at 08:28
Suite au visionnage du Railscasts d’il y a 2 semaines, je voulais tester MongoDB. Problème, il n’existe pas dans les dépôt officiels. Qu’à cela ne tienne, quelqu’un aura sûrement créé un PPA pour ça, et… en effet, il est ici
Un petit coup de add-apt-repository et c’est parti :
sudo add-apt-repository ppa:rattlecentral sudo aptitude update
Hélas, là ça plante, et pour cause, ce PPA ne semble pas suivre la même structure de dossiers que ceux que j’ai pu ajouter via add-apt-repository par le passé. Qu’à cela ne tienne, il suffit d’éditer /etc/apt/sources.list.d/rattlecentral-ppa-karmic.list comme suit :
#deb http://ppa.launchpad.net/rattlecentral/ppa/ubuntu karmic main deb http://ppa.launchpad.net/rattlecentral/mongodb/ubuntu karmic main
Ensuite :
sudo aptitude update sudo aptitude search mongodb sudo aptitude install mongodb
Nouveau problème : le démon de mongodb mongod ne démarre pas. Il suffit de lancer le démon à la main pour se rendre compte du problème :
% sudo /usr/bin/mongod /usr/bin/mongod: error while loading shared libraries: libmozjs.so: cannot open shared object file: No such file or directory
Et le résoudre :
sudo ln -s /usr/lib/libmozjs.so.0d /usr/lib/libmozjs.so sudo /etc/init.d/mongodb start
Y’a plus qu’à.
PS: évidemment, si vous préférez utiliser l’excellent wajig en lieu et place de dpkg/aptitude, ce n’est pas moi qui vous retiendrai :)
Rails 3.0 beta is out !
Posted by JB on 07/02/10 at 20:22
Here we go :
gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n gem install rails --pre
Let’s give it a try ;)
Hello CouchDB
Posted by JB on 08/02/10 at 18:47
On me titille de part et d’autre : Nicolas, Linux Mag (deux fois en 6 mois!), Damien et Damien, et des discussions par-ci par-là.
Donc c’est parti, j’essaie de me faire une appli sur CouchDB. Avec plein d’arrière pensées :
- mieux maitriser l’outil et les concepts sous-jacents pour mieux comprendre (et pourquoi pas contribuer à) Chef
- comparer ça à MongoDB (voir le railscast) ; si je bute trop, j’essaierai peut-être Mongo
- en finir avec le gouffre conceptuel objet/relationnel ; j’espère que ça sera concluant de ce côté :)
Je me fais une petite base de connaissances parce que le besoin commence à être vraiment trop criant. J’ai des tonnes d’items non-lus et/ou à garder dans mon reader RSS, et j’ai vraiment besoin d’un outil pour organiser ça sous forme de tags (et si possible garder des copies locales des articles).
Pour simplifier le tout, je commence à partir sur du Rails 3 :
echo 'gem "couchrest"' >> Gemfile bundle install
Des nouvelles dans les prochaines semaines, le projet sera comme d’hab’ sur github
Redmine Plugins #1 : Ajouter une option vrai/faux à un plugin Redmine
Posted by JB on 20/02/10 at 15:42
Je travaille en ce moment sur des plugins Engines pour Redmine. Ces plugins me serviront au boulot, et permettront de laisser une situation un peu plus propre que les bidouillages actuels à mon départ. En particulier en avançant sur le plugin de gestion d’un datacenter (site et dépôt github), j’apprends énormément de choses sur le fonctionnement de Rails/Redmine/Engines, et j’entame donc une série d’articles sur ces découvertes. Ces articles supposent d’avoir déjà lu le tutoriel du site, et je repartirai souvent de cet exemple.
Cela donnera certainement lieu à des entrées dans le wiki redmine.org ou des suggestions dans les tickets. Et puis ça m’astreindra à publier un peu, comme le fait Eric dans ses Daily Refactor du core Redmine depuis 3 semaines et pour les mêmes raisons, et aussi suite à cet article de Damien.
Allons-y.
init.rb : on y ajoute la clé et la valeur par défaut du paramètre qu’on veut introduire, par exemple ici “boolean_parameter”. On précise également un partial qui permettra de gérer les paramètres du plugin :
settings :default => { :boolean_parameter => true }, :partial => 'settings/my_plugin'
app/views/settings/_my_plugin.html.erb : on place ici un formulaire pour gérer nos paramètres. Il sera automatiquement accessible dans la partie Administration > Plugins > lien “Configurer” sur votre plugin. “plugin_my_plugin” est à remplacer dans ce qui suit par “plugin_[nom de votre plugin]” :
<p> <label>Paramètre booléen</label> <%= check_box_tag 'settings[boolean_parameter]', 1, Setting[:plugin_my_plugin][:boolean_parameter] %> </p>
Et voilà ! Ensuite, n’importe où dans votre plugin, vous pourrez utiliser :
Setting[:plugin_my_plugin][:boolean_parameter]
En réalité en mettant “1” comme deuxième paramètre, vous ne stockerez pas un booléen, mais “1” (coché) ou “nil” (décoché). Si vous souhaitez obtenir “true” ou “false” absolument, vous pouvez utiliser :
!!Setting[:plugin_my_plugin][:boolean_parameter]
A voir en vrai ici