La Rails party fini, voici les slides

La Rails party est désormais fini. Comme prévu, j'y ai fait 3 présentations. Je vous joins ici les PDF de ces présentations sous licence CC

Cette après midi a vraiment été très enrichissante. Énormément de bonne présentation. Quand on sait que tout cela a été réalisé en presque seulement 6 semaines, un grand chapeau au vice-président de RubyFrance Jean-François Trân.

Grâce à cet évènement, j'ai pu découvrir un peu plus en profondeur la communauté Rails. Elle est vraiment très enrichissante. Beaucoup de discussion se sont engagées toutes plus intéressantes les une que les autres. Vivement que l'on se retrouve tous à nouveau. On pourra coder encore plus de Typo :)

[...]
Published on Mar 02 déc 2008 22:42
7 commentaires

Sortie de Pictrails 0.6.0

Un peu après 1 mois de développement une nouvelle version de Pictrails est disponible.

Il n'y a pas de grande modification ni de grand ajout de fonctionnalité. Seule deux fonctionnalités ont été ajoutées. Elles font suite à une demande d'utilisateur.

La première fonctionnalité est la possibilité de copier des images d'une galerie à une autre ? Ça peux parfois être utile.

L'autre fonctionnalité est la possibilité de définir l'image qui défini une galerie. En effet, cette image était défini automatiquement dans les versions précédentes. On peux désormais choisir un image de façon aléatoire ou alors en en définissant une particulière.

Cette version est la dernière supporté par la version de Rails 2.1. Désormais le HEAD sera basculé sur Rails 2.2 qui ne devrait pas tarder à sortir.

Vous pouvez donc télécharger la nouvelle version et l'installer.

English translation

[...]
Published on Mar 18 nov 2008 20:32
3 commentaires

Sortie de Pictrails 0.5.0

Peu de temps avant mon anniversaire qui a lieu le 11 Octobre, voici une nouvelle version de Pictrails.

Durant cette release, la grosse nouveauté est l'ajout des commentaires. Désormais sur chaque photo, des commentaires peuvent être ajoutés. Au niveau de l'administration, il y a la possibilité de gérer ces commentaires en les éditant et les supprimant. Ce n'est bien sûr que le début de l'ajout des commentaires sur pictrails. Si vous désirez formater vos commentaires, vous pouvez le faire avec le format redcloth.

Au niveau ergonomie, j'ai ajouter la vue des photos précédentes et suivantes dans la même galerie. Cette fonctionnalité n'était pas intégré dans Pictrails. Cette erreur est donc désormais résolu.

Les photos sont désormais triés de la photo la plus récente à la plus ancienne dans la vue des photos pour la galerie.

Tout retour est toujours le bienvenu ainsi que la proposition de design. Je rappele aussi qu'une version de démo est disponible. avec comme login admin/pictrails

English translation

[...]
Published on Sam 04 oct 2008 15:51
0 commentaires

Sortie de Pictrails 0.4.0

Alors que je commence un nouvelle emploi, voici la nouvelle version de Pictrails. Cette version 0.4.0 sort assez rapidement après la version 0.3.x. Elle apporte effectivement assez peu de nouvelles fonctionnalités, mais elle a l'avantage d'être maintenant compatible avec Rails 2.1 Les prochaines versions de Pictrails seront peut-être un peu moins fréquente. Mais la roadmap se charge de plus en plus et même quelques personnes commencerait à utiliser Pictrails.

Voici la liste des nouveautés de cette version :

  • Ajout du support des Tags. Ainsi chaque image peux avoir une série de Tag qui lui ai associé.
  • Ajout d'un flux Atom relié au gallerie
  • Ajout d'une bar de coté avec la liste des galleries disponible sur l'application. Elle est organisé sous forme d'arbre exactement comme est l'arborescence.
  • Ajout d'un nuage de Tag global et gallerie par gallerie dans la bar de coté.
[...]
Published on Lun 04 août 2008 20:40
0 commentaires

Le piege des routes à éviter

Alors, que je testais Pictrails pour la release en version 0.3, j'ai par hasard créé une galerie s'appelant "new". Ayant implémenté un système de PrettyURL pour pictrails, j'ai changé les routes REST pour non pas afficher l'id de la galerie dans l'url mais son nom. Ainsi, comme ma galerie s'appele "new", je devais allez sur l'URL : /galleries/new.

Mais voilà comme galerie était une ressource REST, la route /galleries/new est déjà réservé et je me suis donc retrouvé sur l'url de création d'une Gallerie et non sur l'url de visualisation de la galerie new. C'est ainsi que je suis tombé dans le piège des routes à éviter.

Maintenant, que j'ai trouvé le bug il a fallu trouvé la solution et plus que de trouver la solution, il fallait trouver une solution propre. En effet, basiquement, on peux créer un validateur qui vérifie que le nom n'est pas "new", mais cette technique ne me semblait pas idéal surtout pour l'avenir et le maintient à terme de cette solution. J'ai donc commencé à en discuter avec les personnes présentent sur le chan #rubyonrails.fr. C'est ainsi que webs m'a proposé une solution tout à fait élégante en me donnant un code de sunny. La vérification directe de l'existence ou non de la route. Voici le bout de code qui permet cette vérification :

permalinks = ActionController::Routing::Routes.routes.collect {|r|
   r.generation_structure.match(/"\/galleries\/([\w]+)/)[1] rescue nil
}.uniq.compact

On récupère ainsi tous les mots utilisés dans nos routes et commençant par galleries. Sur Pictrails, nous obtenons ainsi "pages" et "new". Il suffit ensuite d'empêcher la création de galerie avec ces noms.

[...]
Published on Mar 17 juin 2008 10:29
4 commentaires

Publication de pictrails 0.3.0

Presque 3 mois jours pour jours après la dernière release de Pictrails 0.2.3, voici la release de la version 0.3.0

partie public de pictrails

Cette nouvelle version apporte son lot de fonctionnalités. La plus importante étant l'ajout du support des sous-galerie En effet, désormais, on peux créer des galeries photos dépendant d'une autre galerie. Cette galerie sera donc visible avec la liste des photos de sa galerie parente. Pour que la navigation soit ainsi plus fluide, j'ai ajouté un fil d'ariane ou breadcrumb pour les anglophiles. On sait ainsi désormais dans quel galerie nous nous trouvons et si celle-ci a des parents.

breadcrumb de pictrails

La deuxième fonctionnalité est surtout la refonte compléte du mass_upload. En effet, le mass_upload ne fonctionnait pas trop si on avait énormément de photo a ajouter. Les threads mongrel ou FastCGI s'arrêtait avec un time out et plus aucune solution de continuer la tâche. Pour ce faire, la première requête liste toutes les images à importer et dans quel galerie. Ensuite à chaque nouvelle requête dans la partie d'administration une série de 5 photos est ajoutés. Pour rendre le système plus conviviale, une progress bar a été ajoutée. Celle-ci évolue progressivement si le Javascript est activé sur votre navigateur. Ce système de mass_upload a bien évidement suivit l'évolution de Pictrails en supportant lui aussi les sous-galeries. Ainsi, il liste de façon récursive les répertoires et créé les galeries avec leurs parents associés.

mass_upload de pictrails

J'espère que cette nouvelle version vous satisfera. Bien-sûr la liste des fonctionnalités a ajouter n'est pas fini pour arriver à la version 1.0. Si vous avez envie de contribuer n'hésitez pas. Pour plus de détails sur cette version, le site de pictrails a été mis à jour

[...]
Published on Dim 15 juin 2008 08:31
0 commentaires

Pictrails 0.2.2 released

Ça y est, un peu moins de 2 mois après la sortie de pictrails 0.1.0, voici la version 0.2.2 de Pictrails. Cette version est cette fois ci considéré comme une version Beta. Je pense qu'il y en aura ainsi beaucoup car la liste des fonctionnalités de Pictrails ne cesse d'augmenter comme vous pouvez le constater sur la roadmap que je tiens à jour régulièrement en l'agrémentant de toutes idées et remarques que l'on peux me faire.

Cette version 0.2.x a déjà eu deux releases avant que je ne l'annonce ici, suite a des découvertes de bugs que je considérais comme majeur. Que ce soit pour la suppression du cache qui ne se faisait pas forcement quand il le fallait ou pour une condition de requête non générique. Je viens même de redécouvrir encore un bug dans une suppression de cache. Je vais donc encore hélas releaser une version 0.2.3. J'en suis vraiment désolé. Ça prouve en tout cas la nécessité absolu de faire plus de test d'intégration, qui vérifie les suppressions de cache. Je vais réaliser ces tâches directement en Stories de Rspec. j'en parlerais ainsi plus profondément dans un futur article je pense.

Au sujet des fonctionnalités apportés par la release 0.2.x, vous pouvez voir :

  • Utilisation massive du système de cache sur toute la partie public pour ainsi avoir les meilleures performances possible (ce qui a entraîné les erreurs que j'ai soulignés et les nombreuses releases).
  • Refontes graphique complète de la partie d'administration. Si vous utilisez Typo 5.0.x, vous verrez facilement l'inspiration que j'ai eu.
  • Ajout de la possibilité de définir une titre et un sous-titre à la galerie dans la partie d'administration.
  • Ajout d'un système de mass_upload à partir d'un répertoire directement présent sur le serveur. Vous indiquez l'emplacement de ce répertoire et tout les images seront intégrés dans une nouvelle galerie
  • Ajout de la pagination dans la liste des galeries ainsi que la liste de images. Cette pagination est définissable directement dans l'administration
  • Possibilité de définir la taille des thumbnails et des images originales qu'il y aura.
  • Suppression de l'utilisation de splash.image. Désormais, il n'y a plus aucune ligne de javascript dans Pictrails. Il reviendra dans le futur. Je voulais une compatibilité maximum avec les utilisateurs désactivant le Javascript.

Pour fêter cette sortie, j'ai décidé de mettre en place une version de démo de pictrails qui tourne actuellement sur la version 0.2.x. Vous pouvez allez l'admirer et lui faire subir tous les sévices. Pour vous logger sur la partie d'administration, les user/password sont : admin/pictrails. Un script la mettra à jours toutes les semaines pour éviter un engorgement et permettre de nouveau test. Cette version tourne derrière un serveur Nginx avec un daemon thin et une base de donnée PostGreSQL.

Si vous souhaitez contribuer à pictrails, il n'y a pas de souci. Par contre, j'ai migrer de Mercurial vers GIT. Vous pouvez bien-sur cloner le dépot pictrails. Pour faire des rapports de bugs et suivre l'évolutions de ceux-ci, vous pouvez allez sur la platforme de développement de pictrails.[...]

Published on Mar 18 mars 2008 12:31
0 commentaires

Mise à jour des options d'attachment_fu dans un model

Attachment_fu est un magnifique plugin rails à utiliser pour tout formulaire qui doit faire un upload de fichier. Je l'utilise ainsi dans mon projet pictrails. Au niveau du README d'attachment_fu, il faut appeler la méthode ActiveRecord#has_attachment dans le model pour configurer l'utilisation de ce plugin. J'ai voulu mettre à jour cette propriété à la volé dans pictrails. J'ai donc commencé à rappeler la méthode ActiveRecord#has_attachment en lui passant les paramètres qui ont changés. J'ai d'abord pensé que ça m'étais à jour les options en conservant les anciennes. Mais après quelques tests, j'ai constaté que ce n'était pas le cas. Si on voulait mettre à jour les propriétés d'attachment_fu par cette méthode, il fallait rappeler toute les options.

C'est alors qu'après une rapide investigation directement dans le code d'attachment_fu, j'ai constaté la présence de la variable attachment_options. Cette variable n'est en fait qu'un Hash reprenant tous les paramètre du model. En le modifiant, on pouvait donc conserver les anciennes options et modifier celle que l'on souhaite. Pour exemple, le commit c47be9d8590ea911f0c1fbd14401fef83e0081e6, fait la modification d'option avec attachment_options au lieu de has_attachment

[...]
Published on Jeu 13 mars 2008 11:53
0 commentaires

Git-submodule, presque le svn:externals de GIT

Depuis le 27 février 2008, j'ai finalement décidé d'abandonner l'utilisation de mercurial dans mon projet Pictrails. J'ai fini par migré vers GIT. En effet, GIT est énormément utilisé par la communauté Ruby et c'est un très bon SCM. Un peu plus rapide que Mercurial et avec de meilleurs outils annexe comme par exemple git-svn. Voici par exemple un autre point qui me fait pencher un peu pour GIT. Il s'agit de git-submodule.

Un des gros points fort de SVN est la propriété svn:externals, qui permet de faire pointé un répertoire vers un autre repository SVN. Cette fonctionnalité n'existe pas à ma connaissance sous mercurial. Mais sous GIT, il y a git-submodule. C'est pas aussi bien que svn:externals, mais c'est déjà pas mal. En effet, le seul défaut de git-submodule est de ne pas pouvoir récupérer qu'une partie du dépôt GIT, comme un dossier en particulier. On est obligé de tout récupéré. svn:externals pouvait limiter la dépendance par contre. Je trouverais peut-être un palliatif.

Comment utiliser git-submodule ? Il faut d'abord trouver le repository GIT que l'on veux dupliquer dans son projet GIT. Un fois celui-ci trouvé, il faut l'ajouter comme submodule :

$ git submodule add <<repo>> /directory/

Une fois que c'est fait, un dossier .gitsubmodule est créé et il faut donc l'ajouter au versionning, le commiter et le push.

Par contre, si vous faite un pull du repository GIT qui contient ce submodule, le téléchargement des sous-modules ne se fait pas automatiquement. En conséquence, il faut penser a réaliser un init et un update des submodules.

$ git submodule init
$ git submodule update

Pareil, la mise à jour des submodules ne se fait pas automatiquement. Il faut faire un petit update de temps en temps.

$ git submodule update
[...]
Published on Sam 08 mars 2008 21:56
2 commentaires

Pictrails 0.1.0 sortie pour une première alpha

Ca y est, j'ai enfin sortie une première version de Pictrails.

Pictrails est une application réalisé avec Rails 2.0. Elle permet de gérer des albums photos.

Pictrails est venue du constat qu'aucune application libre réalisé avec RubyOnRails n'était plus à jour sur la création d'une galerie personnel de photo. Il existe bien des sites internet qui fournissent ce service comme Flikr, mais cela pose la question de la diffusion de ses données. Grâce à des applications libre comme Pictrails, vous êtes le seuls maitre de vos données.

Actuellement Pictrails est encore en alpha. Il n'y a aucun test unitaire de réalisé dessus ce qui peux entrainer de grosses erreurs. Je vais immédiatement réaliser tous ces tests pour que la prochaine version ait une couverture de code de 100%

Toutes personnes souhaitant contribuer à ce projet est la bienvenue. J'ai mis en place un projet sur mon redmine personnel pour gérer pictrails. Vous pouvez y poster des bugs ou améliorations que vous souhaitez. Un repository mercurial est lui aussi en place pour le contrôle de source. Ma plus grosse difficultés étant le graphisme, toutes propositions est la bienvenue.

[...]
Published on Dim 27 jan 2008 16:50
4 commentaires

RSS