Offirmo's posterous
Offirmo

My geek activities under my secret geek identity.

Search

May 20th, 1:37pm 0 comments

Recursive-Open-Struct

You may already know OpenStruct in Ruby. It's a data structure close to a hash which allows some nice syntaxt like that :
my_open_struct.data1 = 1
my_open_struct.data2 = 'something'

etc.

Recursive Open Struct is an extension, which allows even better things like that:
my_ros.stuff = 'something'
my_ros.group1.info = 'some other thing'
my_ros.group1.sub_group1.data = 'another thing'
my_ros.group2.info = 'yet another thing'

This makes it particularly great for storing settings ! That's exactly why I needed that, see the corresponding gem : settings-tree

I didn't wrote Recursive Open Struct (stumbled upon it thanks to google), I just packaged it into a gem for my (and now your) convenience.

Enjoy !

Posted
May 20th, 1:25pm 0 comments

Gemmes

Je ne le fais pas suffisamment : je vais essayer de redistribuer du code.

Comme je fais actuellement du Ruby on Rails, je vais commencer par faire l'effort de packager certains bouts de code réutilisables en gemmes.

N'hésitez pas à commenter. (On va bien voir ce que ça donne...)

Posted
December 8th, 11:36pm 0 comments

Installer Ruby On Rails

"Ruby on Rails", le célèbre framework web, évolue très vite et son installation n'est pas simple. Voici donc un petit tutoriel d'installation de RoR sous Windows pour les prochains à s'y frotter.

1) Choisir le type d'installation

RoR n'est pas fait pour Windows, mais plutôt pour les unix. Vous n'aurez jamais autant de fonctionnalités sous Windows.

Vous pouvez :

  1. Utiliser l'installeur Ruby pour Windows http://accidentaltechnologist.com/ruby-on-rails/running-rails-3-on-windows/
  2. Utiliser Cygwin et installer Ruby en tant que paquet Cygwin. http://wiki.rubyonrails.org/getting-started/installation/cygwin
  3. Utiliser une solution de virtualisation et faire tourner un unix dans votre Windows.

La 1ère solution est la plus simple et la plus rapide.

La 2ème solution est plus compliquée mais aussi plus puissante, car vous serez alors capable d'installer plus d'extensions ("gemmes") qu'avec la première méthode. Enfin, le peu de gemmes qui marchent sous windows...

La 3ème solution, si vous avez un bon processeur et plein de RAM, est la plus puissante, mais aussi la plus longue et la plus compliquée (quoique plus instructive). J'ai acheté 8Go de RAM justement pour ça, c'est donc cette solution que j'utilise. Cela fonctionne très bien.


Les problèmes que j'ai rencontrés :

1) Si vous bloquez à l'installation de RubyGems sous Windows comme moi :

ruby setup.rb
F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems/source_index.rb:68:in `installed_spec_directories': undefined method `path' for Gem:Module (NoMethodError)
        from F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems/source_index.rb:58:in `from_installed_gems'
        from F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems.rb:883:in `source_index'
        from F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems/gem_path_searcher.rb:81:in `init_gemspecs'
        from F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems/gem_path_searcher.rb:13:in `initialize'
        from F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems.rb:841:in `new'
        from F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems.rb:841:in `block in searcher'
        from <internal:prelude>:10:in `synchronize'
        from F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems.rb:840:in `searcher'
        from F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems.rb:479:in `find_files'
        from F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems.rb:983:in `load_plugins'
        from F:/- trie/Bulk/Ruby/rubygems-1.3.7/lib/rubygems.rb:1139:in `<top (required)>'
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from setup.rb:24:in `<main>'


Voici la solution : RubyGem est déjà installé ! Il est maintenant installé d'office avec Ruby : Il n'y a rien à faire en fait. La preuve : tapez "gem" et vous verrez.

Vous pouvez donc passer directement à l'étape suivante : gem install rails

Bon ensuite,

rails new testrailscd testrailsrails server

et là, encore drame...
:

\My Dropbox\www\railtest>rails servercould not find gem 'sqlite3-ruby (>= 0, runtime)' in any of the gem sources listed in your Gemfile. try running `bundle install`.

Bon, et bien on installe la gemme manquante puisque ça le demande :

:\My Dropbox\www\railtest>gem install sqlite3-ruby

Et là, rails server : encore drame ! Manque une petite dll

En fait, il faut la récupérer ici : http://www.sqlite.org/download.html

Et voilà, ça marche enfin !

 

Faire du Rails, ça se mérite on dirait ! Ou plutôt, vouloir faire du rails sous windows, c'est très bête ;-)

Posted
December 8th, 11:12pm 0 comments

Offirmo *abandonne* le php

Bon bon bon...

Ceci nécessite quelques explications...

Ce n'est pas que je n'aime pas le php. C'est même l'un des langages les plus agréables que j'ai utilisé jusqu'ici.

Non. C'est juste que je veux développer des outils web (je ne dit pas "site", c'est trop restrictif). Et pour ça, je crois bien que j'ai fait une erreur en visant le php.

Premièrement, on peut faire un serveur web dans n'importe quel langage : En C, en Java, en php, en Ruby... Mais il y a en réalité deux grandes tendances : php (+framework) et Ruby on Rails (Ruby + framework Rails).

Si vous avez lu mon post précédent, vous avez du comprendre que je débutais en développement web. Je n'avais donc pas tout compris. Il y a même de grosses erreurs. Mais c'est normal. Quelques mois plus tard, j'en sais un peu plus.

Ce que j'avais CRU comprendre, en cherchant sur le net quelle techno je devais apprendre :
- php + Zend Framework est plus difficile au début, mais plus propre, plus souple et plus performant sur le long terme
- Ruby on Rails est plus facile au début, mais l'utilisateur est plus bridé à long terme et les performances sont moins bonnes

Vu comme ça, qu'auriez vous choisi ? J'ai pris php + Zend framework, évidemment, en me disant "RoR c'est pour les bébés, moi je vise le long terme".

Erreur totale. C'est aussi faux que de dire que MacOS X est pour les bébés (ce que certains PC-istes pensent, troll inside ;-)

J'ai galéré avec le Zend Framework. J'ai presque réussi à faire un exemple basique qui fonctionne proprement. Mais j'ai galéré, même si j'ai beaucoup appris en architecture de site web grâce à leur framework qui est bien pensé. J'ai galéré notamment sur cette *%¨*% de couche de persistence que je voulais à MA manière : évolutive et sécurisée. Mais ce n'est pas facile...

Et là, je viens de visionner cette vidéo (qui est déjà périmée !!) : http://media.rubyonrails.org/video/rails_blog_2.mov

Et là j'ai vu la lumière...

Non, RoR n'est pas un "framework plus facile", c'est une BIEN MEILLEURE ABSTRACTION, c'est un langage de BIEN PLUS HAUT NIVEAU, c'est un ensemble BEAUCOUP PLUS SOUPLE ! C'est 100 FOIS MIEUX FICHU ! Et tant pis si les perfs sont une petit peu plus faible ou si on ne peut pas faire certaines bidouilles. Oui, c'est comme l'assembleur contre le C. On peut faire mieux en assembleur mais cela prend 100 fois plus de temps à écrire. Qui développerait encore en assembleur de nos jours ? Ou même en C ? Bon, je suis un peu violent dans mes comparaisons, ne retenez que l'idée générale ^^

Oublié le php et Zend Framework ! Je ne rêve plus que de découvrir un peu plus RoR et de développer ENFIN mes idées d'outils web, plutôt que de galérer avec la tuyauterie sous-jacente.

Stay tuned pour la suite !

Posted
June 13th, 3:35am 0 comments

Offirmo se met au PHP

[Note : ce post reflète l'état de mes mé-connaissances au moment où je l'ai écrit. Mourrez de rire à l'endroit où je dit que Ruby on Rails est un framework pour php ;-) ]

Nous vivons l'âge d'or d'internet. Ingénieux en plus d'être ingénieur, j'ai moi aussi des idées de sites qui seraient très utile. Certaines ont déjà été réalisées par d'autres (je n'ai pas le monopole...), certaines pas encore... C'est parti pour faire du "web 2.0" moi aussi !

Mais pour cela, il me faut ajouter quelques cordes à mon arc. Lesquelles ? En quoi est développé un site web 2.0 à l'heure actuelle ?

Regardons les références : google et quelques autres. Et après quelques recherches sur le net, il me semble que l'association de technologies la plus répandue (juin 2010) est :
- PHP avec un "framework" (comme Ruby on rails, etc.)
- une base de données SQL.

Évidemment, il y a d'autres moyens, et le couple PHP+SQL n'est visiblement pas le plus innovant. Les technologies web sont en évolution très rapides actuellement. Il se crée 1 framework toutes les 5s apparemment, et j'entends parler de NOSQL. Mais ce couple PHP+SQL a l'air incontournable, donc utile à apprendre. Utile aussi pour le *CV* :-P

Je m'attaque donc au PHP et au SQL standard. J'ai déjà abordé les technos web en école supérieure via un petit projet JSP+Oracle. À moi de prouver qu'un bon ingénieur sait apprendre rapidement n'importe quelle technologie.

Je choisi d'apprendre PHP sans framework pour commencer pour des raisons éducatives. Je ne sous-estime pas les framework, mais j'ai un peu de mal à saisir précisément le concept et le périmètre. Je vais donc apprendre la base pour mieux comprendre ce qu'apporte la couche supplémentaire. Je passerai à un framework ensuite.

Je compte vous faire partager ma quête de connaissance pour le(s) prochain(s) qui seront dans mon cas. Conseils et retours bienvenus ! Joyeux web 2.0 !

Liens :

Posted
May 25th, 5:06pm 0 comments

Nerd pride day 2010 !

Je suppose qu'après une brève la lecture de ce blog, il n'aura échappé à personne que son auteur est un [[nerd]].

Or, aujourd'hui, c'est la fête des nerds ! (Date choisie pour l'anniversaire de la sortie du 1er épisode de starwars, film culte des nerds par excellence)

Unknownname

Donc bonne fête à tous les nerds ! Amusons-nous bien et conquérons le monde !

Posted
May 21st, 10:02am 1 comment

Posterous ça déchire

Ce truc est quand même dingue. Pour le post précédent, j'ai juste envoyé un mail en fourrant tout en pièce jointe (photos, fichiers) et Posterous a créé automatiquement un diaporama intégré pour les images et des prévisualisations pour les fichiers ! (et a bien sûr retiré le lien de pub que yahoo ajoute en bas des mails)

Je suis bluffé. Je suis fan. Je suis heureux de gagner du temps.

Bon, il faut quand même retoucher le post à chaque fois car l'ordre et l'emplacement désiré des pièces jointes ne peut être déduit par Posterous. Mais quand même, quel simplicité et quelle efficacité ! Bravo !

Posted
May 21st, 9:40am 0 comments

Belles cartes de loup-garou, gratuites !

Bonjour ! Je vous partage aujourd'hui quelque chose de plus fun: des cartes de loup-garou !

(download)

Même si une boîte de jeu est en vente en France, le jeu du loup-garou, variante connue du jeu populaire "mafia", est libre de droit. Il est donc tout à fait autorisé de faire ses propres cartes, beaucoup moins chères que celles du commerce.

On trouve quelques cartes gratuites sur le net, mais elles sont hélas d'assez mauvais goût. Comme je comptais utiliser le jeu comme activité en salle de classe (d'Anglais), j'ai choisi de faire mes propres cartes. J'ai pu aussi ajouter des personnages connus sur la toile mais absents de la boîte payante.


Voici les personnages peu connus :

Petit garçon : Pour des raisons éducatives, la voyante a été remplacée par un petit garçon, qui mène l'enquête en cachette ;-)
 
Vampire : c'est un personnagequi joue comme un villageois jusqu'à ce qu'il soit attaqué par les loups-garous. Il rejoint alors le camp des loup-garous pour sauver sa vie, et joue dorénavant comme un loup-garou. (Au départ, le maître du jeu doit demander au loup-garou de se réveler à lui pendant que les autres ferment leurs yeux. Si les loups-garou le choisissent comme victime, le maître du jeu demande alors aux loups-garou et au vampire d'ouvrir les yeux ensemble pour qu'ils se reconnaissent, et personne ne meurt cette nuit. Par contre, on indique qu'"un vampire a été aperçu" pour que les joueurs comprennent ce qui s'est passé)
 
Voleur : on prépare deux cartes de plus qu'il n'y a de joueurs. Au début du jeu, si un joueur est le voleur, il peut regarder les deux cartes non distribuées (et non révélées) et peut, s'il le souhaite, prendre une de ces cartes à la place de son voleur. S'il n'échange pas sa carte, le voleur se comporte comme un villageois. Ce rôle mineur ajoute juste un peu de variété.
 
Note : Ci-joint comme d'habitude les cartes en .pdf en en source OpenOffice pour modification éventuelle.
Click here to download:
Werewolf_cards_v3_-_core.pdf (1.25 MB)
(download)

Click here to download:
Werewolf cards v3 - specials.odt (439 KB)
(download)

Click here to download:
Werewolf cards v3 - core.odt (141 KB)
(download)

Attention : Imprimez ces cartes sur du bristol pour que l'on ne voie pas à travers !
Posted
May 21st, 9:17am 0 comments

Flash cards

Si vous connaissez les flashcards, utilisées pour l'apprentissage, vous aurez l'usage de ces modèles.

Sur une page A4, 30 flashcards à découper et à remplir. Attention à imprimer correctement ! (Voir ici)

Ci-joint, comme d'habitude, les versions .pdf et les originaux OpenOffice si vous souhaitez ajouter des modifications.

Bonnes études !

Click here to download:
Flash card face.pdf (15 KB)
(download)

Click here to download:
Flash card dos.pdf (15 KB)
(download)

Click here to download:
Flash card dos.odt (8 KB)
(download)

Click here to download:
Flash card face.odt (8 KB)
(download)

Posted
May 21st, 9:11am 1 comment

Comment imprimer une page dans sa taille originale ?

Résumé : vous voulez imprimer un document dont le contenu doit absolument avoir une taille précise : cartes, étiquettes...

Or les drivers et les logiciels ont la fâcheuse tendance de vouloir faire leur malins et de redimensionner la zone d'impression en croyant bien faire. Votre beau carré de 10x10 cm se retrouve par exemple à faire 9,25x9,25 à votre grand désespoir et énervement !

Pour éviter cela, c'est facile, mais il faut connaître le jargon des imprimantes !

Adobe reader :

Rglagesdimpression

Microsoft Office :

(à faire)

N'hésitez pas à commenter pour ajouter des informations !
Posted