Blog them all

Fabien Penso’s blog

Archive for the ‘rails’ Category

Causes.com : I’m joining a great project.

one comment

I’m now part of Causes which already has nice success stories, but what is Causes?

Causes was founded on the belief that in a healthy society, anyone can participate in change by informing and inspiring others. The most successful movements have always been born out of and held together by the bonds of real world relationships, and online social networks present never before seen opportunities for organizing. We strive to build tools for people to mobilize their friends for collective action, spread the word to friends of friends and acquaintances, and eventually launch movements that span local communities or even the globe.

Causes is also one of the largest current website using Ruby on Rails, and is recruiting developers. So get in touch with me if you’re looking and feel like a Rails hacker, and feel free to follow @caretopia.

Written by Fabien Penso

July 22nd, 2010 at 3:44 pm

Posted in computer,rails

Tagged with

Feedbag: feed discovery with title, feeds, and proper charset

leave a comment

Just released http://gemcutter.org/gems/penso-feedbag to discover feeds for specific website, with proper charset, a fork from muck-feedbag, which was a fork from feedbag.

Yes, I love Ruby, Git, Gem and GitHub.


>> require 'feedbag'
>> Feedbag.find("http://lemonde.fr")[3]
=> #<struct Feedbag::Feed url="http://www.lemonde.fr/rss/sequence/0,2-3224,1-0,0.xml", title="Le Monde.fr: Société">

Written by Fabien Penso

February 12th, 2010 at 2:26 am

Posted in computer,rails

Tagged with ,

Ruby on Rails plugin for Apple Push Notification

6 comments

I’m working on a Ruby on Rails plugin for managing iPhone 3.0 Apple Push Notification. Because this is under NDA I can’t say much about it here, but you’ll find a password protected git repository on the Apple Developer Forums, in this specific post. Patch and feedbacks welcome if you are an iPhone developer.

I also bought my tickets for WWDC 2009, and will be in California from April 30th to June 14th. I might also be at the Railsconf 2009 at Las Vegas but only on Tuesday and Wednesday.

I’d be interested to meet anyone in the iPhone/Rails community reading this blog.

Written by Fabien Penso

April 8th, 2009 at 12:29 am

Site en plusieurs langues avec rails?

leave a comment

Vous avez un site rails que vous désirez faire en multi-langues. Voici un plugin qui vous permettra d’avoir des fichiers de “views” et de “layout” différents. De plus le plugin redirigera l’utilisateur vers la langue de son navigateur (on peut configurer les langues avec un ordre de priorité que le plugin utilise).

Plus d’information vers http://penso.info/svn/rails/plugins/multi_lang/. Pour l’installation effectuez simplement un :

script/plugin install http://penso.info/svn/rails/plugins/multi_lang/

Le reste est dans le README. Le plugin marchera pour des sites existants, vous n’avez pas besoin de déplacer les fichiers immédiatement.

mise à jour on m’indique l’existance de ce plugin qui ferait la même chose (Ruby-GetText-Package). Je n’ai pas vérifié.

Written by Fabien Penso

August 21st, 2006 at 11:58 am

auth_generator 2.0.1! générateur d’identification pour rails

leave a comment

Nouvelle version de mon plugin d’identification pour rails: 2.0.1. Dans la liste des changements, la possibilité d’avoir des thèmes pour les vos fichiers. Ca vous permettra de facilement modifier l’apparence. De plus le support de gravatar a été rajouté, vous n’aurez plus besoin d’avoir une librairie graphique pour la gestion des icones. Quelques bugs aussi.

New version of the auth_generator, an authentification generator for rails. Theme support and gravatar support have been added, as many bugfixes. Feedbacks welcome.

Written by Fabien Penso

August 19th, 2006 at 11:10 am

Les PDA, c’est pas encore ça!

2 comments

Pour les besoins d’un client je regarde ce qui est possible d’être fait du côté des PDA (iPAQ). Depuis le temps que je n’ai pas regardé et que j’ai fait des pages WAP et des pages PDA pour LinuxFr, je me dis que de l’eau a coulé et qu’on ça doit être super bien.

Bah non, c’est toujours pareil. Dans un iPAQ récent on a un Windows Mobile 5.0 (ouch), doté d’un IE limité (déjà que la version PC laisse à désirer). Mes petits bouts d’Ajax sous Rails ne fonctionnent pas, mais javascript est présent et il est possible d’utiliser la fameuse fonction qui permet de faire des requêtes HTTP. Enfin si c’est pour refaire la librairie Prototype… Il faut sans doute installer Opera pour Mobile

Ca me laisse un goût de “ce n’est vraiment pas encore prêt”. Enfin ça permet de voir qu’il est vraiment important d’utiliser des tailles en “em” et non “px” pour les CSS (les margin, padding, etc) pour éviter d’avoir un truc à chier sur un écran en 380×240 pixels de large.

Written by Fabien Penso

August 16th, 2006 at 9:48 pm

Posted in ajax,computer,pda,rails

Mise à jour de rails

leave a comment

Et hop, une mise à jour de sécurité de rails dont on n’a pas encore de détails. Ca promet :) (Qui prend un peu de temps pour remonter dans l’historique subversion et nous donner la partie intéressante?

Bon, j’ai tout mis à jour.

Written by Fabien Penso

August 10th, 2006 at 1:06 am

Posted in rails,securite

Rails, sans rails!

leave a comment

Alors voilà, vous avez un site développé sous “rails”:http://www.rubyonrails.org/ et vous avez besoin d’exécuter des scripts régulièrement. Vous avez donc besoin de vous connecter à la base de donnée, d’utiliser des modèles, etc. Voilà qui va vous changer la vie, la possibilité de faire ça plus rapidement (des bouts de code ont été pris sur usenet). L’exemple est dans le cas ou vous avez un modèle appelé “Zone”.

En gros, vous voilà à utiliser activerecord, sans rails.

#!/usr/bin/ruby
# Fabien Penso

# Debut des scripts pour ecrire les fichiers de configurations

dir = File.dirname __FILE__
# Put the root of the RAILS directory
railsroot = '../uucpssh-1.0'
# Set the mode (development / production)
databasemode = "development"

# We need activerecord
require 'rubygems'
require_gem 'activerecord'

# Load files from the models
$:.insert(0,"#{dir}")
$:.insert(0,"#{dir}/#{railsroot}/app/models/")
$:.insert(0,"#{dir}/#{railsroot}/app/helpers/")

# Read database config via YAML
@dbs = YAML::load(ERB.new(IO.read(railsroot+'/config/database.yml')).result)

curr_db = @dbs[databasemode]

# these parameters are mysql-specific, figure out how to improve
ActiveRecord::Base.establish_connection(:adapter => curr_db["adapter"],
:database => curr_db["database"],
:host => curr_db["host"],
:username => curr_db["username"],
:password => curr_db["password"])

Zone.find(:all).each do |zone|
 puts zone
end

Written by Fabien Penso

June 24th, 2006 at 4:08 pm

Posted in activerecord,rails

Le dimanche, c’est repos

leave a comment

Quelques sites photographiques à visiter:

  • “Le collectif SIC”:http://www.collectifsic.com/ et “le blog”:http://francois-cs.blogspot.com/ de l’un de ses membres ;
  • La photographe “Heidi Good”:http://www.heidigood.com/, d’incroyables portraits ;
  • La page “digitalrailroad”:http://www.digitalrailroad.net/bruno/ de Bruno Stevens, avec deux reportages récents faits en Angola, sur le choléra ainsi que la tuberculose. Hasselblad et Tri-x au rendez-vous ;
  • “un autre”:http://www.lagaraje.com/ pour la route.

Le soir, quand mon emploi du temps le permet, j’aide un peu “Shinji”:http://kuwayama.com/ à améliorer la rapidité de “lightstalkers”:http://www.lightstalkers.org/. Du “rails”:http://www.rubyonrails/, évidemment. Les erreurs que je peux y voir et que vous pourriez être intéressés de ne pas reproduire lors de vos propres développements :

La révision, c’est bon. L’utilisation d’outils de gestion de révisions tels que CVS ou “Subversion”:http://subversion.tigris.org/ (préférez Subversion) est primordiale. Sans cela, pas de développements à plusieurs, pas d’historique, pas de possibilité de backuper votre travail facilement. Bref, sans ça, ne commencez même pas à développer, même pour un projet à une personne.

La gestion de tickets: “trac”:http://www.edgewall.com/trac/, le 2ème outil à mettre en place. Il vous permettra de noter les bugs, fonctionnalités à développer ultérieurement, et de concentrer tout ça sur une seule page. Vous pourrez de plus naviguer dans les sources, controler les derniers travaux effectués sur le projet (timeline), gérer votre TODO list. Le matin en arrivant à votre bureau (ou en vous déplaçant du lit à l’ordinateur), il vous suffit d’aller voir les fonctionnalités à rajouter, en les listant par ordre de priorité. Tous les acteurs du projets pourront faire de même.

Attention à votre code source, n’utilisez que tabulations ou espaces, pas les deux. La consistance dans vos sources et quelques commentaires bien placés faciliteront grandement le travail de vos collegues (futurs ou actuels).

Plus spécifiquement rails. D’abord l’utilisation de find(), ensuite et seulement ensuite, pour des raison d’optimisation, l’usage de find_by_sql(). Pas l’inverse.

Pas de code dans les fichiers views/, comme l’indique le pattern MVC. Pas de @comments = Comment.find() dans les vues, jamais. Les vues se contentent de l’affichage.

La première chose à vérifier quand vous développez votre site, le nombre de requêtes SQL dans le fichier de log (log/development.log) et l’utilisation pour celles-ci de clé (DESC SELECT … dans la console mysql). L’usage de :includes => [] dans le code rails est souvent requis. Conseil: il est souvent plus rapide d’avoir 2 requetes SQL plus simples, qu’une seule très compliquée avec beaucoup de :includes.

L’utilisation massive de caches, et particulièrement pour la page principale du site (caches_page). L’affichage d’information personnelle pourra toujours se faire en javascript directement, ou en Ajax. Qui n’apprécie pas un site qui se charge instantanément, plutôt qu’un autre ou il faut, pour chaque page, attendre 2 secondes?

Un petit rappel: j’effectue toujours des conseils autour de développements logiciels (web ou non). Ce que mes clients devraient attendre de leurs prestataires :

  • Un accès permanent et complet au code source en développement ;
  • Un accès permanent au site en cours de développement, pour vérifier au quotidien l’avancement du projet ;
  • Un accès à une interface de gestion de ticket, pour remonter le plus rapidement possible les mauvaises surprises ;
  • De manière générale, une relation étroite entre vous, et nous.

Et ça tombe bien, vous aurez tout ça ici.

Written by Fabien Penso

June 11th, 2006 at 3:18 pm

FabienPenso.com: l’image du jour

leave a comment

Voilà terminé une version Ajaxifiée de “fabienpenso.com”:http://fabienpenso.com. Dehors Flash, bienvenue HTML (et ça m’a pris moins de temps que Flash). C’est quoi ce site ? C’est une photo par jour (pas tous les jours), pas forcément pris le jour même (sinon faut se dépêcher de la prendre puis de courir la mettre en ligne … :) Le site est évidemment fait sous “rails”:http://www.rubyonrails.org/ mais ça change pas grand chose étant donné la simplicité du bouzin.

Written by Fabien Penso

June 5th, 2006 at 11:54 am