Christian KAKESA

Aller au contenu | Aller au menu | Aller à la recherche

samedi 3 novembre 2007

Installer ruby sur Win32 pour utiliser les objects OLE sur une plateforme windows, un jeu d'enfant.

Téléchargement : http://rubyforge.org/frs/download.php/27227/ruby186-26_rc2.exe

Dans le but de piloter une application excel, j'ai du faire quelques recherches afin de mettre en place une plateforme windows(Vista)/ruby pour réaliser une application de facturation avec générant de pdf, etc...

Un exemple vaut mieux que de longs discours...
Télécharger le binaire ci-dessus. Une fois terminé, procéder à l'installation de ruby. A la fin de celui-ci, ouvrir un shell windows et tester les commandes suivantes :

$ irb
$irb> require "win32ole"
$irb> ie = WIN32OLE.new('InternetExplorer.Application')
$irb> ie.visible = true
$irb> ie.Navigate('http://www.kakesa.net', 1)
$irb> ie.quit
$irb> exit

Ceci n'est qu'un avant goût de ce qu'on peut réaliser avec cette technologie, que j'ai finalement reconnu la puissance malgré mes rétissances lorsque que j'ai du commencer ce projet.
Pour le début de mon projet un code de test avec excel donnerais basiquement ceci :

$ irb
$irb> require "win32ole"
$irb> xls = Win32OLE.new "Excel.Application"
$irb> xls.Visible = true
$irb> xls.quit
$irb> exit

On a ouvert Excel en ruby, y a plus qu'a chargé un fichier, puis récupérer des données externe tel que (données dans une base MySQL) puis les traiter dans le doc Excel...

Téléchargement : http://dev.mysql.com/downloads/mysql/5.0.html#win32, choisissez : Windows ZIP/Setup.EXE (x86).

Comment se connecter à une base de données MySQL ?
Tout d'abord récupérer sur le site de MySQL AB l'installeur automatique du serveur MySQL, lancer l'installation, lancer ensuite le wizard de configuration disponible dans "Tous les programmes/MySQL..." afin de définir l'utilisateur "root" ainsi que son mot de passe etc...
Ensuite nou pouvons installer le connecteur ruby de mysql :

$ gem search mysql --remote
$ gem install mysql

Le choix 1 devrait convenir....
Testons maintenant :

$ irb
$irb> require "mysql"
$irb> dbh = Mysql.real_connect "localhost", "login", "mdp", "db"
$irb> puts dbh.get_server_info
$irb> res = dbh.query "SHOW DATABASES"
$irb> while row = res.fetch_row do
$irb> puts row.to_s
$irb> end
$irb> exit

Testons maintenant de quoi générer du PDF :

$ gem search pdf --remote
$ gem install pdf-writer

Accepter les dépendances proposées. Il ne reste plusqu'à tester cette fonctionnalité.

$ irb --simple-prompt
>> require "pdf/writer"
>> pdf = PDF::Writer.new
>> pdf.select_font "Times-Roman"
>> pdf.text "Hello GEET (GEek ETna)"
>> pdf.text "Hello GEET (GEek ETna)", :font_size => 72, :justification => :center
>> pdf.save_as "hello_geet.pdf"
>> exit
$ "c:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe" hello_geet.pdf

Magnifique, nous sommes prêt à réaliser notre application de facturation.
Quelle puissance !!!

jeudi 1 novembre 2007

Installer PMK sous linux, alternative aux autotools !

Site officiel : http://pmk.sourceforge.net

Téléchargement : http://pmk.sourceforge.net/download.php

Pour ceux qui veulent utiliser autre chose que les autotools pour compiler leurs projets sous linux, il existe un petit utilitaire assez simple d'emploi (il suffit de s'y mettre) et qui permet de générer un fichier de configuration et makefile digne de ce nom. Un petit tour sur le tutoriel de pmk et vous comprendrez et saurez qu'il existe un outil simple qui peut remplacer assez souvent les autotools.

Qu'est ce que PMK ?
PMK est un gestionnaire automatique de compilation de sources. Celui-ci est très simple d'utilisation car il intègre un scanner de source permettant ainsi de générer une template de "Makefile.pmk" ainsi qu'une template "pmkfile". ensuite il ne reste qu'à personnaliser selon les besoins.

Pour commencer récupérer les source de pmk :

wget http://mesh.dl.sourceforge.net/sourceforge/pmk/pmk-0.10.2.tar.gz
tar -zxvf pmk-0.10.2.tar.gz
cd pmk-0.10.2
sudo sh pmkcfg.sh
make && sudo make install
sudo /usr/local/bin/pmksetup

Il est aussi posible d'installer pmk en user space avec : sh pmkcfg.sh -u.

Personnellement j'ai du faire un petit hack pour utiliser correctement PMK :

sudo ln -s /usr/lib/pkgconfig /usr/local/lib/pkgconfig

Cela permet d'éviter que PMK ne trouve pas le chemin de la lib pkgconfig, il existe peut-être une manière de le faire proprement via le fichier de config(pmkfile) mais je n'ai pas encore essayer de le faire dans ce but.

L'outil PMK me sert surtout dans le projet OZAXE. Actuellement il permet l'automatisation de la compilation sous linux de la librairie "Ozaxe-Lib" qui a pour but d'abstraire des fonctionnalités sur les plateformes linux/windows/macOSX, plus clairement dit : utiliser une classe de manière transparente sur ces 3 plate formes.

Donc pour conclure un grand merci à Damien (le développeur de PMK), pour cet outil. N'hésitez pas à vous rendre sur le site et poser vos questions. Ce projet est frenchy alors n'hésitez pas à le tester.