Bonjour,
Afin de re-dynamiser R'QUID, je recherche un ou plusieurs développeur(s) Ruby ayant des connaissances sur :
- OLE (Word, Excel)
- Ruby/wxWidgets (interface graphique)
- Sachant utiliser des librairies (Gems) et comprendre une doc.
Serais un plus :
- Adopte et utilise les méthodes agiles :)
- Connaissance de l'outil PowerAmc
- Connaissance de Business Objects, d'un ETL ou quelques connaissances en BI/Décisionnel (ou intéressé d'en connaître)
- Aime l'Open Source
Son rôle sera de mettre en place des outils packagés, exécutables, simple d'utilisation pour tous utilisateurs d'un outil BI, ou consultant décisionnel.
Je m'engage à une réelle montée en compétence des développeurs dans le domaine du décisionnel :)
Pour toutes questions et/ou candidature écrire à dixdix10[at]gmail[dot]com ; sujet : [RQUID][DEV_RUBY]
Affichage des articles dont le libellé est RUBY. Afficher tous les articles
Affichage des articles dont le libellé est RUBY. Afficher tous les articles
jeudi 15 avril 2010
jeudi 19 mars 2009
Des Gem utiles - résumé
gem ~ bibliothèque [Cf. article installer une Gem] - [.bat d'install] (changer le répertoire ruby\bin)
Pour de meilleures performances, ou parce que ça n'existe pas en standard ;)
require 'rubygems' #inclure une des gem du paquet rubygems
*Indispensable*
Ils existent vraiment de nombreuses gems, n'hésitez pas à regarder si votre programme open-source préféré n'existe pas sous Ruby !!
Pour de meilleures performances, ou parce que ça n'existe pas en standard ;)
require 'rubygems' #inclure une des gem du paquet rubygems
*Indispensable*
- Fast ruby debugger : pour debug plus facilement, fonctionne sous eclipse (sans config)
- install: >$ gem install -r ruby-debug
- install: >$ gem install -r libxml-ruby
- usage: require 'xml/libxml' - include LibXML
- Html Entities : encoder/décoder du texte au format HTML
- ex.: "<élan>" => "<élan>"
- install: >$ gem install -r htmlentities
- usage: require 'htmlentities'
- Faster CSV : lire/écrire avec des fichiers de type csv (fichier à séparateur) facilement, surtout si le fichier comporte une en-tête [doc]
- install: >$ gem install -r fastercsv
- usage: require 'faster_csv'
- Choice : arguments de la ligne de commande
- install: >$ gem install -r choice
- usage: require 'choice'
- Rubyscript2exe : créer un exécutable en incluant toutes les dépendances en fonction de l'OS utilisé
- install: >$ gem install -r rubyscript2exe [doc]
- usage: require 'rubyscript2exe'
- R-Magik : travailler sur des images (vraiment très pratique) [ImageMagick Wx]
- ex.: créer très simplement une image gif redimentionnée à partir de toutes les jpg d'un répertoire : >$ convert -delay 20 -loop 0 *.JPG animation.gif
- install: >$ gem install -r rmagick
- usage: require 'RMagick' - include Magick [exemple]
- install: >$ gem install -r ruby-graphviz
- usage: require 'graphiz'
- GTK2 (GNOME) : IHM / Interface Graphique - Windows x86-ms32
- install: [guide d'installation] (installer l'exe dans "ruby\" et non "ruby\gnome")
- usage: require 'gtk2'
Ils existent vraiment de nombreuses gems, n'hésitez pas à regarder si votre programme open-source préféré n'existe pas sous Ruby !!
mercredi 18 mars 2009
Liste des gems favorites
Le nombre de gems disponibles est supérieur à 7000 !!! autant dire, que pour une problématique donnée, il est fort probable que quelqu'un ait déjà réfléchi à une solution en proposant une gem.
Nous utilisons que quelques gems parmi toutes celles qui sont disponibles (cf. RubForge).
/* ruby-debug
Ruby est livré avec un debugger standard (écrit en ruby) mais il n'est pas très performant. Cette gem permet de debugger des scripts Ruby beaucoup plus rapidement (utilisation d'une API C).
L'installation de la gem s'effectue en ouvrant une fenêtre DOS (Wx+R > tapez "cmd") puis en tapant la commande suivante : gem install ruby-debug.
La gem ruby-debug est dépendante d'autres gems qui sont automatiquement installées telle que columnize, linecache, ruby-debug-base.
Maintenant, il est possible de configurer Eclipse pour utiliser cette gem. Dans Eclipse,
- Cliquer sur Window > Preferences
- Cliquer sur Ruby > Debug > Engine > Fast Ruby debugger (ruby-debug) > OK
- Ouvrir le fichier test_install.rb (cf. Installation Eclipse/Ruby)
- Se positionner sur une ligne avec du code ruby (hors commentaire)
- Double cliquer dans la marge de l'éditeur (ou Run > Toggle Breakpoint) => un point d'arrêt est activé.
- Cliquer sur Run > Debug > Remember my decision > Yes
- Une nouvelle perspective s'ouvre donnant accès aux fonctionnalités du debugger.
/* FasterCSV
Les formats de fichiers étant très nombreux et hétérogènes, il est préférable d'utiliser un format "basique". Le format CSV (Comma Separated Value) est une format de fichier qui est éditable dans un éditeur de texte (pas de codage particulier). Ce format se prête bien pour échanger des données entre différentes applications (Pour en savoir plus sur le format CSV).
FasterCSV est voué à remplacer la librairie standard CSV de Ruby :
Pour tester que la librairie est correctement installée, il est possible de créer le script suivant :
require 'rubygems'
require 'faster_csv'
puts FasterCSV::VERSION
L'exécution doit afficher la version de la librairie installée.
/* libxml-ruby
Ruby est livré avec une librairie standard écrite en ruby pour utiliser des fichier XML mais elle n'est pas très performante. Cette gem permet de manipuler des fichiers XML beaucoup plus rapidement (utilisation d'une API C).
Pour installer cette gem sur Windows, il est nécessaire d'avoir utiliser l'installation One-Click (l'installation à partir de l'archive zip ne contenant pas tous les fichiers nécessaires pour une utilisation sous Windows). De plus, il faut absolument que la variable système Path contienne le chemin du répertoire contenant l'exécutable ruby.exe.
A partir de là, l'installation de la gem s'effectue en ouvrant une fenêtre DOS (Wx+R > tapez "cmd") puis en tapant la commande suivante : gem install libxml-ruby.
Pour tester que la librairie est correctement installée, il est possible de créer le script suivant :
require 'rubygems'
require 'libxml'
puts LibXML::XML::VERSION
L'exécution doit afficher la version de la librairie installée.
/* Graphviz-ruby
L'application GraphViz permet de représenter graphiquement des graphes. L'application GraphViz est open source, gratuite et libre de droits. Pour en savoir plus
Une librairie ruby permet de créer facilement des fichiers au format GraphViz afin de générer le graphe désiré. Cette librairie nécessite que graphviz soit présent sur le poste.
L'installation de la gem s'effectue en ouvrant une fenêtre DOS (Wx+R > tapez "cmd") puis en tapant la commande suivante : gem install ruby-graphviz.
Pour tester que la librairie est correctement installée, il est possible de créer le script suivant :
require 'rubygems'
require 'graphviz'
puts GraphViz::RGV_VERSION
L'exécution doit afficher la version de la librairie installée.
Pour plus d'informations :
/* Choice
La gestion des arguments dans Ruby est assez rudimentaire : il faut parser la ligne de commande afin d'identifier d'éventuels paramètres. Cette gem permet de mettre en place des commutateurs au niveau de la ligne de commande. Ainsi il est possible de passer les arguments dans n'importe quel ordre (vu qu'ils sont identifiés par des switches) et des les récupérer très facilement.
L'installation de la gem s'effectue en ouvrant une fenêtre DOS (Wx+R > tapez "cmd") puis en tapant la commande suivante : gem install choice.
Pour tester que la librairie est correctement installée, il est possible de créer le script suivant :
require 'rubygems'
require 'choice'
Choice.options do
end
puts Choice.choices.inspect
Nous utilisons que quelques gems parmi toutes celles qui sont disponibles (cf. RubForge).
/* ruby-debug
Ruby est livré avec un debugger standard (écrit en ruby) mais il n'est pas très performant. Cette gem permet de debugger des scripts Ruby beaucoup plus rapidement (utilisation d'une API C).
L'installation de la gem s'effectue en ouvrant une fenêtre DOS (Wx+R > tapez "cmd") puis en tapant la commande suivante : gem install ruby-debug.
La gem ruby-debug est dépendante d'autres gems qui sont automatiquement installées telle que columnize, linecache, ruby-debug-base.
Maintenant, il est possible de configurer Eclipse pour utiliser cette gem. Dans Eclipse,
- Cliquer sur Window > Preferences
- Cliquer sur Ruby > Debug > Engine > Fast Ruby debugger (ruby-debug) > OK
- Ouvrir le fichier test_install.rb (cf. Installation Eclipse/Ruby)
- Se positionner sur une ligne avec du code ruby (hors commentaire)
- Double cliquer dans la marge de l'éditeur (ou Run > Toggle Breakpoint) => un point d'arrêt est activé.
- Cliquer sur Run > Debug > Remember my decision > Yes
- Une nouvelle perspective s'ouvre donnant accès aux fonctionnalités du debugger.
/* FasterCSV
Les formats de fichiers étant très nombreux et hétérogènes, il est préférable d'utiliser un format "basique". Le format CSV (Comma Separated Value) est une format de fichier qui est éditable dans un éditeur de texte (pas de codage particulier). Ce format se prête bien pour échanger des données entre différentes applications (Pour en savoir plus sur le format CSV).
FasterCSV est voué à remplacer la librairie standard CSV de Ruby :
- En étant bien plus rapide bien qu'étant une librairie pour Ruby.
- En étant plus riche en terme de fonctionnalités.
- En améliorant la gestion des fichiers CSV.
Pour tester que la librairie est correctement installée, il est possible de créer le script suivant :
require 'rubygems'
require 'faster_csv'
puts FasterCSV::VERSION
L'exécution doit afficher la version de la librairie installée.
/* libxml-ruby
Ruby est livré avec une librairie standard écrite en ruby pour utiliser des fichier XML mais elle n'est pas très performante. Cette gem permet de manipuler des fichiers XML beaucoup plus rapidement (utilisation d'une API C).
Pour installer cette gem sur Windows, il est nécessaire d'avoir utiliser l'installation One-Click (l'installation à partir de l'archive zip ne contenant pas tous les fichiers nécessaires pour une utilisation sous Windows). De plus, il faut absolument que la variable système Path contienne le chemin du répertoire contenant l'exécutable ruby.exe.
A partir de là, l'installation de la gem s'effectue en ouvrant une fenêtre DOS (Wx+R > tapez "cmd") puis en tapant la commande suivante : gem install libxml-ruby.
Pour tester que la librairie est correctement installée, il est possible de créer le script suivant :
require 'rubygems'
require 'libxml'
puts LibXML::XML::VERSION
L'exécution doit afficher la version de la librairie installée.
/* Graphviz-ruby
L'application GraphViz permet de représenter graphiquement des graphes. L'application GraphViz est open source, gratuite et libre de droits. Pour en savoir plus
Une librairie ruby permet de créer facilement des fichiers au format GraphViz afin de générer le graphe désiré. Cette librairie nécessite que graphviz soit présent sur le poste.
L'installation de la gem s'effectue en ouvrant une fenêtre DOS (Wx+R > tapez "cmd") puis en tapant la commande suivante : gem install ruby-graphviz.
Pour tester que la librairie est correctement installée, il est possible de créer le script suivant :
require 'rubygems'
require 'graphviz'
puts GraphViz::RGV_VERSION
L'exécution doit afficher la version de la librairie installée.
Pour plus d'informations :
/* Choice
La gestion des arguments dans Ruby est assez rudimentaire : il faut parser la ligne de commande afin d'identifier d'éventuels paramètres. Cette gem permet de mettre en place des commutateurs au niveau de la ligne de commande. Ainsi il est possible de passer les arguments dans n'importe quel ordre (vu qu'ils sont identifiés par des switches) et des les récupérer très facilement.
L'installation de la gem s'effectue en ouvrant une fenêtre DOS (Wx+R > tapez "cmd") puis en tapant la commande suivante : gem install choice.
Pour tester que la librairie est correctement installée, il est possible de créer le script suivant :
require 'rubygems'
require 'choice'
Choice.options do
end
puts Choice.choices.inspect
mardi 24 février 2009
Ruby on Windows
Un très bon site sur Ruby on Windows (anglais), où vous trouverez bon nombre d'exemples sur *Word/Excel/PowerPoint*
Mais aussi de quoi faire une interface Windows (IHM / GUI) avec la gem WxRuby (exemple)
Et bien entendu de quoi réaliser la *production d'un executable* Windows [rubyscript2exe]
[Réalisation d'un installer Windows avec Inno]
Le résultat en sera donc une *application autonome* de vos programmes Ruby avec une interface Windows, ca vaut le coup d'y jeter un coup d'oeil non ?
[Article OLE][Article GUI]
Mais aussi de quoi faire une interface Windows (IHM / GUI) avec la gem WxRuby (exemple)
Et bien entendu de quoi réaliser la *production d'un executable* Windows [rubyscript2exe]
[Réalisation d'un installer Windows avec Inno]
Le résultat en sera donc une *application autonome* de vos programmes Ruby avec une interface Windows, ca vaut le coup d'y jeter un coup d'oeil non ?
[Article OLE][Article GUI]
mercredi 11 février 2009
Ruby TDD - Développement piloté par les Test
Développement piloté par les Test (TDD : Test Driven Development)
C'est bien de développer, faut-il encore garantir que nos programmes supportent les changements et répondent aux exigences. Il est plus sympa d'écrire du code pour répondre aux tests que de tenter d'écrire du code pour que la classe ne fonctionne pas (qui prendra le temps de tester dans cette situation?). Le but est de répondre au besoin, n'écrire que le code qui répond au besoin et rien de plus (YAGNI :You Ain’t Gonna Need It) [article détaillé]
C'est bien de développer, faut-il encore garantir que nos programmes supportent les changements et répondent aux exigences. Il est plus sympa d'écrire du code pour répondre aux tests que de tenter d'écrire du code pour que la classe ne fonctionne pas (qui prendra le temps de tester dans cette situation?). Le but est de répondre au besoin, n'écrire que le code qui répond au besoin et rien de plus (YAGNI :You Ain’t Gonna Need It) [article détaillé]
require "test/unit"Inclure ensuite la classe MonObjet
class TestMonObjet < Test::Unit::TestCase
def test_attribut
monObjet = MonObjet.new("un titre")
assert_equal "un titre", monObjet.nom
end
end
NB: Vous pouvez notez qu'il est vraiment facile de créer une classe de test, alors plus d'excuse!
jeudi 5 février 2009
Ruby et les OLE
OLE : Object Linking and Embedding ("chaînage et incorporation d'objets")
Sorte de bibliothèques de fonctions au format Windows (*.dll)
Pourquoi les OLE sont si importantes ?
Les ole permettent d'accéder à toutes les fonctions des applications windows, et permettent de développer sous le pack office, mais aussi sur tout logiciel respectant cette architecture, ayant une API ou un SDK (c'est le cas de PowerAmc, BusinessObjects, Cognos...). Nous utilisons donc les API pour réaliser nos développement *QUID*.
Il est tout à fait possible d'intéragir avec le langage vba (qui peut comporter des facilités), mais qui est aussi très aisé sous Ruby ;) (créer tout de même un module pour récupérer les constantes).
[RubyDoc OLE] [SimWi's Blog] où se trouve un ex intéressant avec Word.
[Ruby OLE Browser] un script ruby permettant d'instrospecter vos objets/librairies disponibles.
NB: pour travailler avec des formats ouverts (OpenOffice, XML, PDF) on préfera utiliser des gem.
Sorte de bibliothèques de fonctions au format Windows (*.dll)
Pourquoi les OLE sont si importantes ?
Les ole permettent d'accéder à toutes les fonctions des applications windows, et permettent de développer sous le pack office, mais aussi sur tout logiciel respectant cette architecture, ayant une API ou un SDK (c'est le cas de PowerAmc, BusinessObjects, Cognos...). Nous utilisons donc les API pour réaliser nos développement *QUID*.
Il est tout à fait possible d'intéragir avec le langage vba (qui peut comporter des facilités), mais qui est aussi très aisé sous Ruby ;) (créer tout de même un module pour récupérer les constantes).
[RubyDoc OLE] [SimWi's Blog] où se trouve un ex intéressant avec Word.
[Ruby OLE Browser] un script ruby permettant d'instrospecter vos objets/librairies disponibles.
NB: pour travailler avec des formats ouverts (OpenOffice, XML, PDF) on préfera utiliser des gem.
mercredi 4 février 2009
Installation d'une Gem Ruby
Une gem est une petite bibliothèque de classes,fonctions,modules (librairie - package de fonction étendues) pour répondre à un besoin précis. Etant réalisé par la communauté, testé, mise à jour, je vous conseille donc avant chaque développement de ne pas regarder s'il existe une gem (soit en standard, soit à télécharger). [RubyGem] [Documentation Gem] [liste]
Inclure une gem à son programme (équivalent à l'import d'un package java *import java.rmi.*;*)
require 'rubygems'
require 'monPacket/maJolieGem'
La racine des gem se trouve : ruby\lib\ruby\gems\1.8\gems (ici gem en version 1.8)
Installation de RubyGems (si non installée).
- Télécharger la dernière version de rubygems (rubygems-1.3.1.zip par exemple).
- Décompresser l'archive.
- Ouvrir une fenêtre commande DOS (Wx+R>tapez "cmd").
- Se positionner dans le répertoire de décompression de l'archive i.e. "C:\Temp\rubygems-1.3.1"
- Exécuter la commande "<>\ruby.exe" setup.rb.
Installation d'une gem : (pré-requis RubyGems doit être installé \bin\gem)
Rien de plus simple il vous suffit de vous rendre en mode command (Wx+R>tapez "cmd") et d'aller dans le répertoire des exécutables (bin) : eclipse\ruby\bin
- Aide : >$ gem --help
- Rechercher une gem avec nom (RegExp) : >$ gem list -r .*nom_gem.*
(ou >$ gem query --remote --name-matches *nom_gem*)
- Installer une gem : >$ gem install --remote *nom_gem*
- Liste des gems distantes disponibles : >$ gem query -r
ex.: installer rails : >$ gem install rails
Résolution de problèmes :
Aucun message => OK ; -e:1:in `require': no such file to load => KO
Inclure une gem à son programme (équivalent à l'import d'un package java *import java.rmi.*;*)
require 'rubygems'
require 'monPacket/maJolieGem'
La racine des gem se trouve : ruby\lib\ruby\gems\1.8\gems (ici gem en version 1.8)
Installation de RubyGems (si non installée).
- Télécharger la dernière version de rubygems (rubygems-1.3.1.zip par exemple).
- Décompresser l'archive.
- Ouvrir une fenêtre commande DOS (Wx+R>tapez "cmd").
- Se positionner dans le répertoire de décompression de l'archive i.e. "C:\Temp\rubygems-1.3.1"
- Exécuter la commande "<>\ruby.exe" setup.rb.
Installation d'une gem : (pré-requis RubyGems doit être installé \bin\gem)
Rien de plus simple il vous suffit de vous rendre en mode command (Wx+R>tapez "cmd") et d'aller dans le répertoire des exécutables (bin) : eclipse\ruby\bin
- Aide : >$ gem --help
- Rechercher une gem avec nom (RegExp) : >$ gem list -r .*nom_gem.*
(ou >$ gem query --remote --name-matches *nom_gem*)
- Installer une gem : >$ gem install --remote *nom_gem*
- Liste des gems distantes disponibles : >$ gem query -r
ex.: installer rails : >$ gem install rails
Résolution de problèmes :
- Par ce moyen les dépendances sont automatiquement téléchargées
- Si vous passez par un proxy, il ne vous sera peut être pas possible d'utiliser le "remote", procédez alors comme suit :
- Récuperer le proxy (adresse et port) (propriétés Internet Explorer>Connexions>Paramètres réseau)
- Créer une variable d'environnement HTTP_PROXY et y mettre la valeur précédemment récupéré e (Wx+pause>avancé>variables d'environnement) [ou juste pour la session]
- Certains problèmes peuvent survenir car l'application gem est réalisé sous unix, il y a parfois des incompatibilités dans la gestion des chemins ("\","/"). Il vous suffit alors de :
- Chercher le(s) fichier(s) "rake_builder.rb" (faire une copie de sauvegarde)
- Remplacer "cmd += " RUBYARCHDIR=#{dest_path} RUBYLIBDIR=#{dest_path}" # ENV is frozen" par
- "cmd += " RUBYARCHDIR=\"#{dest_path}\" RUBYLIBDIR=\"#{dest_path}\"" # ENV is frozen", sauver [article référant]
- Si vous n'avez pas le fichier "rake_builder.rb" tenter de mettre à jour RubyGem ou si rake n'existe pas (\bin)
- >$ gem update --system
- Rake ne fonctionne pas (compilation pour certaine librairie - "rake non reconnue comme commande interne"), le mettre à jour :
- >$ gem install -r rake
- ajouter le path pour rake : fenêtre dos >$ PATH=%PATH%;C:\eclipse\ruby\bin
- En utilisant la commande gem, il est possible d'obtenir le message suivant "erreur : Cette application n'a pas pu démarrer car
.dll est introuvable. La réinstallation de cette application peut corriger ce problème ". Pour résoudre ce problème, il faut placer la (ou les) dll manquante(s) dans le répertoire bin de Ruby. Il est possible de télécharger les dll. Voici les 3 dlls qui peuvent être manquantes : zlib.dll, libeay32.dll, ssleay32.dll
Aucun message => OK ; -e:1:in `require': no such file to load => KO
mardi 20 janvier 2009
Installation Eclipse/Ruby
Avoir un environnement avec Eclipse/Ruby :
*/ Télécharger eclipse, ruby, jre
Installer Ruby dans le répertoire d'eclipse (eclipse\ruby) - (et la jre dans eclipse\jre)
*/ Il vous faut maintenant installer Core Frameworks (commun pour tous les langages) et Ruby IDE :
- Sur la page Dynamic Languages Toolkit downloads (dltk) récupérer un des liens (section "update site" stable)
- Aller ensuite dans Eclipse Help > Software updates...
- Onglet Available Software > Add Site...
- Coller le lien, sélectionner ensuite le Core et l'IDE (pas besoin du sdk, ni des sources)
---> Dynamic Languages Toolkit (DLTK)
-------> Dynamic Languages Toolkit - Core Frameworks
-------> Dynamic Languages Toolkit - Ruby Development Tools
- Cliquer sur Install... > Next > I accept the terms of the license agreements > Finish > Yes
*/ Référencer l'interpréteur pour créer un projet etc. :
- Une fois installé (Core/IDE), aller dans Eclipse Window > Preferences
Une section Ruby est alors créé.
- Aller dans Ruby > Interpreters > Add... ajouter ruby (vous pouvez écrire un chemin relatif à partir du répertoire eclipse)
---> Interpreter Type : Generic Ruby
---> Interpreter Name : ruby (par exemple)
---> Interpreter Executable : ruby\bin\ruby.exe (en chemin relatif)
- Cliquer sur OK > OK
Vous pouvez désormais créer des projets ruby!
NB: Interpreter Librairies [Ruby] est créé dans tout vos projets, vous pouvez alors créer un projet librairies, et faire un lien raccourci dans vos projets pour éviter de recopier l'ensemble des librairies à chaque projet.
*/ Lancer Eclipse avec une JRE autonome (jre dans le répertoire eclipse)
Il suffit de créer un raccourci avec les arguments suivants :
...\eclipse.exe -vm "jre\bin\javaw.exe" -data "workspace" -refresh -showlocation
Ou bien il est possbile de créer un .bat dans le répertoire eclipse qui contient
eclipse.exe -vm "jre\bin\javaw.exe" -data "workspace" -refresh -showlocation
*/ Maintenant, nous allons créer un projet Ruby pour tester que tout fonctionne correctement. Dans Eclipse :
- Cliquer sur File > New > Ruby Project
---> Project Name : Temp
---> Cliquer sur Create new project in workspace
---> Cliquer sur Use default interpreter
- Cliquer sur Finish
- Cliquer sur File > New > Empty Ruby Script
---> Source Folder : Temp
---> File : test_install.rb
- Cliquer sur Finish
- Saisir : puts "Ruby c'est trop fort"
- Cliquer sur Run > Run > Always save resources before launching > OK
Dans la fenêtre console, le message apparaît => tout est OK !
*/ RoR:
Projet Aptana - démo - article sur les auto-tests
- Eclipse (IDE : Integrated Development Environment)
- DLTK pour Ruby
- JRE : Java Runtime Environment
- Ruby exe [one-click Wx installer]
*/ Télécharger eclipse, ruby, jre
Installer Ruby dans le répertoire d'eclipse (eclipse\ruby) - (et la jre dans eclipse\jre)
*/ Il vous faut maintenant installer Core Frameworks (commun pour tous les langages) et Ruby IDE :
- Sur la page Dynamic Languages Toolkit downloads (dltk) récupérer un des liens (section "update site" stable)
- Aller ensuite dans Eclipse Help > Software updates...
- Onglet Available Software > Add Site...
- Coller le lien, sélectionner ensuite le Core et l'IDE (pas besoin du sdk, ni des sources)
---> Dynamic Languages Toolkit (DLTK)
-------> Dynamic Languages Toolkit - Core Frameworks
-------> Dynamic Languages Toolkit - Ruby Development Tools
- Cliquer sur Install... > Next > I accept the terms of the license agreements > Finish > Yes
*/ Référencer l'interpréteur pour créer un projet etc. :
- Une fois installé (Core/IDE), aller dans Eclipse Window > Preferences
Une section Ruby est alors créé.
- Aller dans Ruby > Interpreters > Add... ajouter ruby (vous pouvez écrire un chemin relatif à partir du répertoire eclipse)
---> Interpreter Type : Generic Ruby
---> Interpreter Name : ruby (par exemple)
---> Interpreter Executable : ruby\bin\ruby.exe (en chemin relatif)
- Cliquer sur OK > OK
Vous pouvez désormais créer des projets ruby!
NB: Interpreter Librairies [Ruby] est créé dans tout vos projets, vous pouvez alors créer un projet librairies, et faire un lien raccourci dans vos projets pour éviter de recopier l'ensemble des librairies à chaque projet.
*/ Lancer Eclipse avec une JRE autonome (jre dans le répertoire eclipse)
Il suffit de créer un raccourci avec les arguments suivants :
...\eclipse.exe -vm "jre\bin\javaw.exe" -data "workspace" -refresh -showlocation
Ou bien il est possbile de créer un .bat dans le répertoire eclipse qui contient
eclipse.exe -vm "jre\bin\javaw.exe" -data "workspace" -refresh -showlocation
*/ Maintenant, nous allons créer un projet Ruby pour tester que tout fonctionne correctement. Dans Eclipse :
- Cliquer sur File > New > Ruby Project
---> Project Name : Temp
---> Cliquer sur Create new project in workspace
---> Cliquer sur Use default interpreter
- Cliquer sur Finish
- Cliquer sur File > New > Empty Ruby Script
---> Source Folder : Temp
---> File : test_install.rb
- Cliquer sur Finish
- Saisir : puts "Ruby c'est trop fort"
- Cliquer sur Run > Run > Always save resources before launching > OK
Dans la fenêtre console, le message apparaît => tout est OK !
*/ RoR:
Projet Aptana - démo - article sur les auto-tests
mercredi 17 décembre 2008
Ruby Exceptions
[RubyDoc Exceptions] - begin, rescue, catch, raise, retry <=> try, catch, finally (Java)
Mieux qu'un long discours, un exemple !!
#la bonne façon d'ouvrir un fichier!!
begin
f = File.new('C:\\myFile.txt', 'r')
rescue => err
puts "#{err}"
ensure
f.close unless f.nil?
end
> ouverture du fichier "myFile.txt" en cas d'erreur on affiche l'erreur que l'on récupère (rescue)
> ensure : on s'assure que dans tous les cas on ferme la socket du fichier ;)
NB: on peut bien sur exécuter d'autres traitements...
catch/throw ! on peut vouloir ne pas s'arrêter dans un traitement!
on peut retenter l'opération "retry/raise"
la récupérer "catch", ou la repropager "throw"
plus de détail dans la doc :)
Mieux qu'un long discours, un exemple !!
#la bonne façon d'ouvrir un fichier!!
begin
f = File.new('C:\\myFile.txt', 'r')
rescue => err
puts "#{err}"
ensure
f.close unless f.nil?
end
> ouverture du fichier "myFile.txt" en cas d'erreur on affiche l'erreur que l'on récupère (rescue)
> ensure : on s'assure que dans tous les cas on ferme la socket du fichier ;)
NB: on peut bien sur exécuter d'autres traitements...
catch/throw ! on peut vouloir ne pas s'arrêter dans un traitement!
on peut retenter l'opération "retry/raise"
la récupérer "catch", ou la repropager "throw"
plus de détail dans la doc :)
mercredi 10 décembre 2008
IHM - GUI - Ruby (interface)
IHM : Interface Homme Machine / GUI : Graphical User Interface
Objectif : rendre l'outil facilement exploitable par le plus grand nombre grâce à une interface graphique.
Différent ToolKit existent Qt, Gtk, Tk, Vruby, Shoes, FxRuby, WxRuby
- Ncurses/Ruby
- Ruby-Gnome
[Ruby/Gtk2, Ruby/QT, Ruby/Fox ou Ruby/wxWidgets ?] [GTK exemple GTK2]
*/ Un petit exemple *Tk/Vruby* lisant les OLE de la machine : [exemple modifié][original]
Il y a deux interfaces à Tcl/Tk inclus dans la distribution standard :
1/ ext/tcltk/- require "tcltk". Syntaxe proche de l'interpréteur de TCL. Description de cette librairie en Japonais uniquement (:s).
2/ ext/tk/- require "tk". Syntaxe proche du modèle d'interface de Tk qui a été fourni pour l'interfaces de Perl et de python.
*/ Qt4 : [Premiers pas en Ruby-Qt4] [Appli en Ruby-Qt4]
*/ Une autre voix intéressante est de réaliser son interface graphiquement avec wxformbuilder qui fournit en standard un code c++, mais qui génère également du code XRC (xml des interfaces) que vous pouvez exploiter avec firefox2 ou Ruby ;) (WxRuby gem?)
[Une petite description des outils ci-dessus sur ibm.com en English]
Cf. passer des arguments comme pour les programmes unix (ex.: --help)
Objectif : rendre l'outil facilement exploitable par le plus grand nombre grâce à une interface graphique.
Différent ToolKit existent Qt, Gtk, Tk, Vruby, Shoes, FxRuby, WxRuby
- Ncurses/Ruby
- Ruby-Gnome
[Ruby/Gtk2, Ruby/QT, Ruby/Fox ou Ruby/wxWidgets ?] [GTK exemple GTK2]
*/ Un petit exemple *Tk/Vruby* lisant les OLE de la machine : [exemple modifié][original]
Il y a deux interfaces à Tcl/Tk inclus dans la distribution standard :
1/ ext/tcltk/- require "tcltk". Syntaxe proche de l'interpréteur de TCL. Description de cette librairie en Japonais uniquement (:s).
2/ ext/tk/- require "tk". Syntaxe proche du modèle d'interface de Tk qui a été fourni pour l'interfaces de Perl et de python.
*/ Qt4 : [Premiers pas en Ruby-Qt4] [Appli en Ruby-Qt4]
*/ Une autre voix intéressante est de réaliser son interface graphiquement avec wxformbuilder qui fournit en standard un code c++, mais qui génère également du code XRC (xml des interfaces) que vous pouvez exploiter avec firefox2 ou Ruby ;) (WxRuby gem?)
[Une petite description des outils ci-dessus sur ibm.com en English]
Cf. passer des arguments comme pour les programmes unix (ex.: --help)
vendredi 21 novembre 2008
Ruby pack & unpack - Problème de jeux de caractères
Il arrive souvent que dans les applications nous rencontrons un problème avec les différents jeux de caractères (ASCII, LATIN-1, UTF-8) ; il faut alors les convertir. [astuce]
Remarque : afin de gérer tous les caractères de toutes les langues, préférez l'encodage UTF-8.
$KCODE = 'U' #UTF-8 : s'assurer que le code de la page est en UTF-8
En Ruby vous pouvez trouver ceci pour résoudre votre problème : [iconv]
# attention destination, source Latin-1 => UTF-8
@c = Iconv.new('utf-8','iso-8859-1')
text = @c.iconv(mon_texte_a_encoder)
Iconv.new('iso-8859-15//IGNORE//TRANSLIT', 'utf-8').iconv(text)
Cette fonction comporte cependant quelques "Bugs" et vous devez gérer les cas particuliers des accents.
Il est donc préférable d'utiliser pack, unpack :
*/ unpack : créé un tableau avec le n° du caractère ascii (code ASCII)
C : 0 à 255
c : -128 à 127
*/ pack : ffff
U : UTF-8
Transformer un "string" iso-8859-1 en UTF-8 : string.unpack('C*').pack('U*')
Ruby Doc [arr.pack] - [str.unpack(format) => anArray]
Remarque : afin de gérer tous les caractères de toutes les langues, préférez l'encodage UTF-8.
$KCODE = 'U' #UTF-8 : s'assurer que le code de la page est en UTF-8
En Ruby vous pouvez trouver ceci pour résoudre votre problème : [iconv]
# attention destination, source Latin-1 => UTF-8
@c = Iconv.new('utf-8','iso-8859-1')
text = @c.iconv(mon_texte_a_encoder)
Iconv.new('iso-8859-15//IGNORE//TRANSLIT', 'utf-8').iconv(text)
Cette fonction comporte cependant quelques "Bugs" et vous devez gérer les cas particuliers des accents.
Il est donc préférable d'utiliser pack, unpack :
*/ unpack : créé un tableau avec le n° du caractère ascii (code ASCII)
C : 0 à 255
c : -128 à 127
*/ pack : ffff
U : UTF-8
Transformer un "string" iso-8859-1 en UTF-8 : string.unpack('C*').pack('U*')
Ruby Doc [arr.pack] - [str.unpack(format) => anArray]
jeudi 13 novembre 2008
Tools Box - Boîte à Outils Ruby - Expressions rationnelles
Testez Ruby depuis le web [TryRuby]
Testez vos expression rationnelles depuis le web [Rubular]
Plein d'expression rationnelles (RegExp) déjà toutes faîtes ! [RegexLib]
Expression rationnelles(/régulières) :
Testez vos expression rationnelles depuis le web [Rubular]
Plein d'expression rationnelles (RegExp) déjà toutes faîtes ! [RegexLib]
Expression rationnelles(/régulières) :
- [pdf Java] Slide 9 à 19
- RegexBuddy : aide à la création de regExp (payant mais incluant beaucoup de masque par défaut et multi-langage)
- RegexSR : manipulation de texte
Libellés :
boîte à outils,
Expressions rationnelles,
expressions régulières,
RUBY,
tools
lundi 20 octobre 2008
Conférence RoR 2008 - Cité des Sciences de la Villette
La 3ème édition de la conférence du framework de Ruby (RoR : Ruby on Rails) pour les développement Web se tiendra le 01/12/2008. [inscription]
Bénéficier du tarif 80€ pour une inscription avant le 09/11/2008 (100€ au delà).
A noter qu'en 2007 mon professeur de Java "Christophe Porteneuve" alias TDD très actif sur la technologie faisait parti des experts de la conférence.
Bénéficier du tarif 80€ pour une inscription avant le 09/11/2008 (100€ au delà).
A noter qu'en 2007 mon professeur de Java "Christophe Porteneuve" alias TDD très actif sur la technologie faisait parti des experts de la conférence.
lundi 13 octobre 2008
QUID : Qualité et Urbanisation de l'Information Décisionnelle
QUID : QUALITÉ ET URBANISATION DE L'INFORMATION DÉCISIONNELLE
L'idée de QUID est de réaliser des prestations efficaces simples et rapides dans le domaine du décisionnel. Il suit le constat que la prestation décisionnelle se penche globalement sur les mêmes problématiques, qu'on réinvente la roue au sein de chaque client (processus de norme, architecture...), et que finalement beaucoup de travail est réalisable automatiquement grâce à des outils, normes & standard.
Un des problèmes est que les techniciens (en général) ne veulent pas entendre parler de fonctionnel, et les fonctionnels ne pas écrire une ligne de code... et pourtant tant de temps gagner à faire du fonctionnel en tapant quelques lignes de code...
QUID est né donc de l'idée de 3 prestataires de sociétés concurrentes (cf. Contributeurs) assis autour d'une table discutant de RoR (Ruby On Rails) et de la facilité de développer avec ce framework.
Le nom de QUID a été défini le 16/04/2008, "QUID parce qu'il a réponse à tout..."L'idée de QUID est de réaliser des prestations efficaces simples et rapides dans le domaine du décisionnel. Il suit le constat que la prestation décisionnelle se penche globalement sur les mêmes problématiques, qu'on réinvente la roue au sein de chaque client (processus de norme, architecture...), et que finalement beaucoup de travail est réalisable automatiquement grâce à des outils, normes & standard.
Un des problèmes est que les techniciens (en général) ne veulent pas entendre parler de fonctionnel, et les fonctionnels ne pas écrire une ligne de code... et pourtant tant de temps gagner à faire du fonctionnel en tapant quelques lignes de code...
QUID est né donc de l'idée de 3 prestataires de sociétés concurrentes (cf. Contributeurs) assis autour d'une table discutant de RoR (Ruby On Rails) et de la facilité de développer avec ce framework.
QUID est le résultat d'expérience de travail au sein de projets
- RATP : réalisé au forfait nécessitant de produire rapidement dans un délai très court
- ROCHE : projet de qualité de données basé sur les normes et les standards
- GENERALI : problématique commune, effet de synergie (1+1 = 3)
R'QUID car Ruby est le langage de développement de la plate-forme.
QUID permet d'automatiser des tâches répétitives, sans erreurs sur des technologies propres au décisionnel.
Des réalisations sont déjà présentes sur Oracle, Datastage, Business Objects... (cf. Démonstrations).
Le blog est ici pour parler de QUID et du métier de la Business Intelligence (BI) / décisionnel.
- RATP : réalisé au forfait nécessitant de produire rapidement dans un délai très court
- ROCHE : projet de qualité de données basé sur les normes et les standards
- GENERALI : problématique commune, effet de synergie (1+1 = 3)
R'QUID car Ruby est le langage de développement de la plate-forme.
QUID permet d'automatiser des tâches répétitives, sans erreurs sur des technologies propres au décisionnel.
Des réalisations sont déjà présentes sur Oracle, Datastage, Business Objects... (cf. Démonstrations).
Le blog est ici pour parler de QUID et du métier de la Business Intelligence (BI) / décisionnel.
Inscription à :
Articles (Atom)