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]

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é]
require "test/unit"
class TestMonObjet < Test::Unit::TestCase
def test_attribut
monObjet = MonObjet.new("un titre")
assert_equal
"un titre", monObjet.nom
end
end
Inclure ensuite la classe MonObjet
NB: Vous pouvez notez qu'il est vraiment facile de créer une classe de test, alors plus d'excuse!

lundi 9 février 2009

Rachat et concentration en Business Intelligence (BI)

La mondialisation impose aux entreprises d'être toujours plus performance et présente sur le marché. Les multinationales n'hésitent pas à investir dans le rachat d'entreprises (croissance externe). La Business Intelligence à le "vent en poupe" et tout le monde essai de prendre des parts de marchés, pour les plus gros qui sont en retard il suffit de racheter un produit/entreprise spécialisé.
Comme on a pu le voir avec Adobe Rachetant Macromédia (3,4Md$), cette concentration peut avoir des effets bénéfiques et compter quelques effets de synergie (1+1=3). Quel rapport avec la BI me direz-vous? Parce que la présentation de rapport est un élément important (Cf. Article rapport dynamique Pdf/Flex/Flash).

IBM :
- Rachat de Datastage (ETL Ascential) - 1,1Md$ - 2005
- Cognos - 5 Md$ - nov. 2007
*/ Cognos rachète Applix [applications financières] - 339 M$ - 06/09/2007
*/ Applix ayant racheté TM1, l'un des plus anciens moteurs OLAP d'analyse multidimensionnelle.

SAP :
- Business Objects - 4,8 Md€ - 08/10/2007
*/ BO avait racheté Cartesis [applications financières] - 225 M€ - printemps 2007
- Virsa Systems 2006
- Outlooksoft
- Pilot Software 02/2007

Oracle : (ETL ODI : Oracle Data Integrator)
- Rachat d'Hypérion - 3,3 Md$ - 01/03/2007
- Sunopsis -> ODI - 2006
- Siebel (progiciel CRM)
- Peoplesoft (ERP)
- HotSip (solutions d’infrastructures pour les opérateurs télécoms)
- ThorTechnologies & Octetstring (securité & gestion des identités)

Informatica : (ETL PowerCenter)
- Rachat de PowerData - 01/10/2008

Focus sur les ETL :
- Genio -> Hummingbird -> OpenText
- Sunopsis -> Oracle ODI
- Datastage : Ardent -> Informix -> Ascential -> IBM

[liste outils BI Open Source] [liste outils BI]

vendredi 6 février 2009

Logiciels Open Source dans la BI

[Article JDN illustré d'images] [Liste des outils BI (non Open Source)]
Le décisionnel est partout, en pleine concentration et expansion. Mais on peut compter sur de nombreux outils Open Source sur le marché permettant au PME de bénéficier de ses solutions.

ETL (Extract Transform Load) - [Etude comparative ETL réalisé par Manapps]
Analyse multidimensionnelle (Cube)
  • Mondrian : serveur OLAP écrit en JAVA (intégré à Pentaho solutions)
  • Palo : server OLAP pour excel
  • Jpivot, Jrubik, FreeOLAP : client Mondriant (bibliothèque)
  • Jpalo : client Palo (bibliothèque)
  • OpenI : rapport dynamique en provenance d'OLAP ...
Générateurs d'états (Reporter)
  • Birt, JasperReports : outil de conception de rapports basé sur Eclipse et un moteur d’exécution installable dans un serveur d’applications J2EE
  • JFreeReport (bibliothèque)
  • Générateur de graphiques :
  • JFreeChart (bibliothèque)
  • MarvelIt : dashboard

Datamining (analyse de données/statistiques)

Portail de Restitution (Web Reporter) - les suites BI
[Article original et le Blog de l'auteur]
[Cf. Outils bureautique/multimédia Open Source]

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.

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 :
  • 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 :
  1. Récuperer le proxy (adresse et port) (propriétés Internet Explorer>Connexions>Paramètres réseau)
  2. 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 :
  1. Chercher le(s) fichier(s) "rake_builder.rb" (faire une copie de sauvegarde)
  2. Remplacer "cmd += " RUBYARCHDIR=#{dest_path} RUBYLIBDIR=#{dest_path}" # ENV is frozen" par
  3. "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 :
  1. >$ gem install -r rake
  2. 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
Test de l'installation d'une gem : >$ ruby -e "require 'xml/libxml'"
Aucun message => OK ; -e:1:in `require': no such file to load => KO