ETL Kettle – Découverte de l’outil d’ETL de Pentaho Data Integration
par Rom's le 24 août 2010 (Architecture, Astuces, Développement Web)
Kettle est un outil d’ETL (Extract, Transform, Load) de la suite BI de Pentaho Data Integration. Son principal intérêt est de récupérer diverses sources dans divers formats, de les traiter, de les transformer, et de former un résultat puis d’exporter dans le format souhaité vers une destination souhaitée.
Tout ceci se fait de façon visuelle en créant des étapes et en éditant le détail de chaque étape. (je sais, ça dépasse.. mais comme ça on peut tout voir
)
Il est possible de faire des scripts personnalisés sous forme de script java (javascript)
Exemples de sources et exports possibles :
- Bases de données (37 bases de données disponibles dont MySQL, Oracle, SQLite, PostgreSQL, MS Access, MS SQL Server, Sybase, Firebird SQL, AS/400,…)
- Fichiers (XML, TXT, CSV, PSV, TSV ou autres séparateurs, instructions SQL dans fichier,
- Flux SOAP, REST
- Récupération ou envoi depuis ou vers des FTP/SFTP/FTPS/over SSH2
- Possibilité de dézipper ou zipper des fichiers en entrée ou en sortie
- Envoi / récupération depuis ou vers des e-mails / courriels (suivant sensibilité)
Comme les exemples sont souvent plus parlants, je vais vous donner quelques exemples bien pratiques de choses que l’on peut faire avec un ETL :
- récupérer un fichier XML à 10 niveaux de données depuis un FTP, l’aplatir sous forme de tableau, mettre à jour les données dans une table MySQL puis l’exporter sous forme de fichier CSV et l’envoyer par e-mail
- joindre trois fichiers excel (format XLS) et les entrées en base de données en comparant les sources, en dédoublonnant, et en faisant un fichier par type d’erreur possible
- prendre tout simplement un fichier, renommer des colonnes, en rajouter, normaliser la longueur des champs et le nombre de décimales, enlever les espaces vides et réexporter le tout dans un format souhaité
Les scripts réalisés visuellement sont exportables et installables comme tâches planifiées sur un serveur.
Bon, pour tout ça, je vous conseille de télécharger la version Pentaho Data Integration Spoon 3.2 (http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=spoon+3.2) même si la version 4.0 est sortie il n’y a pas longtemps, justement parce qu’elle est sortie il n’y a pas longtemps (la version windows en téléchargement contient la version linux..)
Je vous mets ici bientôt quelques exemples de scripts que vous puissiez jouer avec.

» flux RSS du blog
PHP : Distance en KM grâce à Google Maps API Directions
par Rom's le 21 août 2010 (Développement Web)
Petite fonction pour calculer la distance entre un point A et un point B grâce à l’API de Google Maps qui a été récemment ouverte pour les itinéraires (Google Maps API Directions).
Vous pouvez ainsi récupérer la distance d’un trajet, sa durée (temps de trajet), les étapes et l’adresse convertie de départ et d’arrivée (permet de récupérer une adresse postale par rapport à des coordonnées)
Vous avez ainsi la distance réelle en kilomètres par la route et non à vol d’oiseau !
function getDistance($adresse1,$adresse2) {
$url='http://maps.google.com/maps/api/directions/xml?language=fr&origin='.$adresse1.'&destination='.$adresse2.'&sensor=false';
$xml=file_get_contents($url);
$root = simplexml_load_string($xml);
$distance=$root->route->leg->distance->value;
$duree=$root->route->leg->duration->value;
$etapes=$root->route->leg->step;
return array(
'distanceEnMetres'=>$distance,
'dureeEnSecondes'=>$duree,
'etapes'=>$etapes,
'adresseDepart'=>$root->route->leg->start_address,
'adresseArrivee'=>$root->route->leg->end_address
);
}
ATTENTION : GOOGLE ACCEPTE UN NOMBRE LIMITE DE REQUETES (sous peine d’un status : OVER_QUERY_LIMIT). Si vous souhaitez récupérer plusieurs résultats à la suite, Il faut donc soit temporiser les requêtes et en faire une toutes les 100ms (100 millisecondes soit 100000 microsecondes, source : un script exemple de google utilise ce délai), soit suivre une méthode que je vous proposer bientôt ici même (mise en cache). Il est important de le faire dès le départ, j’en ai fait l’amère expérience, mon IP personnelle est blacklistée de façon permanente apparemment.. (suite à deux fois une dizaine de requêtes simultanées, il ne faut pas grand chose…)

» flux RSS du blog
Icones Facebook, Twitter et autres réseaux sociaux dessinées à la main (icones libres de droit)
par Rom's le 19 août 2010 (Marketing)
Un peu de style pour vos icônes que diable ! Si vous souhaitez que vos icones de réseaux sociaux (facebook, twitter,…) aient un peu d’allure, le style dessiné à la main est plutôt sympa dans le genre.
Deux liens pour cela :
http://theg-force.deviantart.com/art/Social-Icons-hand-drawned-109467069 (le lien de téléchargement format *.rar se trouve sur la droite de la page)
http://www.jankoatwarpspeed.com/post/2008/10/20/handycons-a-free-hand-drawn-social-media-icon-set.aspx
Pour l’exemple, vous pouvez aller sur http://52sorties.fr par exemple et aller sur une des « fiches produit ». (visuel ci-dessus)
Ces icones sont toutes libres de droits et gratuites évidemment.

» flux RSS du blog
Itinéraire et Distance via HTTP (PHP par ex) : l’API de Google Maps a évolué !
par Rom's le 20 mai 2010 (Architecture, DSI, Développement Web)
L’exemple en PHP est ici : PHP : distance en kilomètres, durée et étapes du trajet grâce à Google Maps API Directions
Il était amusant de voir que cette fonctionnalité était possible mais qu’elle était juste refusée au niveau de la requête par Google : si vous lisiez via le navigateur le flux JSON, vous y voyiez des informations intéressantes telles que la distance et l’itinéraire pour aller d’un point A à un point B, qu’on aurait tout à fait pu parser. Mais Google le refusait.
Cette annonce n’a l’air de rien : http://googlegeodevelopers.blogspot.com/2010/05/directions-web-service-arrives-at.html mais c’est une révolution pour ceux qui souhaitent intégrer des calculs de distance, ou faire des PDF avec des itinéraires ou ce genre de choses.
Concrètement, le flux que vous recevez ressemble à ceci :
{
« status »: « OK »,
« routes »: [ {
« summary »: « Massachusetts Ave, Massachusetts 2A W et Lexington Rd »,
« legs »: [ {
« steps »: [ {
« travel_mode »: « DRIVING »,
« start_location »: {
« lat »: 42.3585300,
« lng »: -71.0600700
},
« end_location »: {
« lat »: 42.3580200,
« lng »: -71.0604300
},
« polyline »: {
« points »: « ycpaGl|upLdBfA »,
« levels »: « BB »
},
« duration »: {
« value »: 4,
« text »: « 1 minute »
},
(…)
Source : https://mail.google.com/mail/?hl=fr&shva=1#inbox/128b3a8d28ec3fd6
Autres API qui viennent de sortir : http://www.zorgloob.com/2010-05/google-fait-le-plein-dapi/
L’exemple en PHP est ici : PHP : distance en kilomètres, durée et étapes du trajet grâce à Google Maps API Directions

» flux RSS du blog
Outils pour les webmestres
par Rom's le 16 avr 2010 (Astuces, DSI, Logiciels)
Tout responsable de boutique e-commerce a pour responsabilité de s’assurer de la continuité du service. Pour cela, il dispose de nombreux outils gratuits un peu partout, le tout étant d’utiliser les bons outils et de les utiliser régulièrement.
Je me propose ici d’en faire une liste et d’en décrire l’utilisation que j’en fais. Si vous le voulez bien, je vous demanderai votre avis et nous ferons évoluer cette liste afin d’avoir une check-list la plus exhaustive possible.
A faire circuler évidemment ;)
Le premier des outils, Google >Analytics
Quel meilleur outil de gestion au quotidien que Google Analytics. Pensez notamment à
- Configurer votre tableau de bord.
Suivant ce que vous cherchez à optimiser sur le moment, un bouton « ajouter au tableau de bord » apparaît en haut à gauche de chaque rubrique dans le bandeau gris ; cela garde les paramètres en cours ;
- Définir vos objectifs
Les objectifs, c’est lorsque vous tirez quelque chose de votre internaute. La plupart des sites marchands définissent les objectifs suivant : formulaire de contact, demande de devis, achat avec paiement à confirmer (chèques, virements,…), achat avec paiement confirmé (CB).
L’entonnoir de conversion est le fait de ramener l’ensemble des internautes qui se trouvent sur l’ensemble des pages (haut de l’entonnoir) vers l’unique page qui vous intéresse pour un entonnoir donné. Un entonnoir = Un objectif. Pensez à prévoir des pages (avec URLs spécifiques après conversion, ex. /contact/merci)
- Créer des alertes (non pas via le deuxième lien du menu, mais via l’encart « mes personnalisations »)
Il est plutôt intéressant d’être prévenu à la minute où « quelque chose se trame », les alertes (Bêta ;o)) permettent de définir des indicateurs intéressants. Pour ma part, j’ai paramétré des alertes regardant les évolutions d’une semaine sur l’autre pour être averti s’il y a
o Baisse significative du nombre de visites versus même jour de la semaine précédente (si baisse > 40%)
o Hausse significative du taux de rebond (si hausse > 20%)
o Temps moyen passé sur le site baisse (baisse > 30%)
Suivant les habitudes, et suivant si l’on est habitué à plus ou moins de fluctuations, on peut (on doit) évidemment moduler ces pourcentages.
- Consulter les alertes automatiques (rubrique Alertes en deuxième position du menu cette fois) qui mettent automatiquement en exergue des moments notables de la vie de votre site.
Google Sitemaps
Fonctionnalités principales de sitemaps (si vous connaissez, relisez quand même cette liste, on redécouvre toujours l’outil)
- Pages introuvables sur le site
- Impressions (= affichages de vos liens sur Google) versus nombre de clics
- Performances du site (rubrique « labos/performances du site » et « diagnostic/statistiques sur l’exploration » – permet notamment de voir le temps de téléchargement d’une page sur Google qui est nouvellement devenu un critère de positionnement http://googlewebmestrecentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html)
- Gestion de vos sites links (liens qui apparaissent sous votre résultat dans Google)
- Abonnés via Google Reader (« votre site sur le web / statistiques sur les abonnés »)
- Etat du sitemap. Souvent laissés de côté, les >sitemaps ne sont pas là que pour faire joli, ils montrent notamment à Google le niveau d’importance des différentes pages et leur hiérarchie telle que souhaitée par le webmestre.
Pour mesurer les performances au fil du temps, et être averti des éventuelles baisses de régime, vous pouvez utiliser Woozweb, un outil de Smile qui teste un contenu donné sur une page donné régulièrement, vous fait des graphiques sur les temps d’exécution, vous donne les moyennes, et surtout vous prévient par e-mail lorsque le temps d’exécution dépasse un seuil défini. http://www.woozweb.com/homeview
Google trends / websites
Magnifique outil s’il en est, Google Trends vous permet de comparer deux mots clés et de savoir si c’est « ordinateur » le plus recherché, ou « ordinateurs » (http://www.google.com/trends?q=ordinateur,ordinateurs) ou encore de voir les préoccupations des gens et l’évolution de leurs recherches sur certains mots clés (http://www.google.com/trends?q=attentats) et ce pays par pays, et éventuellement ville par ville. Ces résultats sont exportables sous Excel au format CSV (Cf. lien de bas de page)
Quoi de mieux pour l’étude de la concurrence que Google Trends Websites. Bien que réservé à des sites à fort trafic (à l’exception de Google qui s’est auto-exclu..), qu’un comparateur de sites Internet. Vous pourrez voir l’évolution site Internet par site Internet depuis 2006 (Google le faisait avant, mais mal donc ils ont réduit les possibilités au niveau des dates) et comparer plusieurs sites Internet. Exemple pour quelques sites E-commerce français : http://www.google.com/trends?q=rueducommerce.fr,pixmania.fr,discounteo.com,amazon.fr&date=all&geo=fra&ctab=0&sort=0&sa=N
Générateur de mots clés >Adwords
Comme son nom l’indique, le générateur de mots clés de Google >Adwords sert à générer des mots clés, vous entrez une thématiques vous cochez « synonymes », et l’outil vous propose un ensemble de mots clés (ciblage « exact », « large » ou « expression ») en indiquant pour chaque le niveau de concurrence qui fait rage sur Google >Adwords et le volume de recherche. Pratique !
Suivre les actualités
Détail qui n’en est pas un : être au courant de ce qui se passe ailleurs, être au courant des tendances pour apprendre à les anticiper ! Le meilleur moyen à mon sens : Google Reader, vous affichez vos flux en liste étendue (« >expanded »), et vous défilez l’ensemble des news avec la touche espace. Ça va vite, c’est agréable. Vous avez même l’extension Google Chrome qui vous dit combien d’éléments sont en attente de lecture, ça vous évite d’y aller pour rien.
Pour suivre les actualités de votre domaine, il y a une fonctionnalité méconnue de Google News : l’export d’un flux de news en RSS. Allez dans Google News, tapez la requête qui va bien en prenant soin d’exclure les éventuels sujets qui ne vous intéressent pas (exemple : « DSI –nintendo » en ce qui me concerne), trouvez le lien « RSS » en pied de page et faites-vous plaisir. Exemple de flux : http://news.google.fr/news/search?pz=1&cf=all&ned=fr&hl=fr&q=DSI+-nintendo
A noter que Google Reader accepte aussi que vous vous abonniez à une page (et donc pas un flux), et il vous montre les différences et nouveautés sur cette page dès que détectées ! (utile quand les sites ne proposent pas de flux ! exemple plus bas avec les extensions)
Suivi du client !
Trop souvent oublié, le client doit être très écouté, en permanence mais surtout les premiers temps. Pour cela, tout est bon :
- Sondage « que recherchez-vous ? » dans la colonne de droite pour identifier les désirs initiaux de vos visiteurs ;
- Formulaire de contact toujours disponible aux endroits attendus (pied de page, en haut à droite, près du panier) ;
- Numéro de téléphone toujours en évidence et les personnes qui répondent qualifient les appels (formulaire construit en deux minutes grâce à Google Docs ?) ;
- E-mails épluchés et qualifiés ;
- Retours sur les forums sur le web ;
-…
Extensions des navigateurs
De nouvelles extensions sortent tous les jours et elles apportent leur lot de surprises ! Pour Firefox comme pour Google Chrome, il y en a énormément mais les extensions réellement utiles sont beaucoup moins nombreuses. Je me tiens à Google Chrome car la rapidité de ce navigateur et l’indépendance de ses onglets me plaisent particulièrement (lorsqu’un onglet plante, ce n’est pas tout le navigateur qui plante).
Tout d’abord, ajoutez carrément la page dans Google Reader pour être au courant des nouveautés : https://chrome.google.com/extensions/list/newest?hl=fr
Quelques extensions intéressantes pour vous :
- Capture de pages web : https://chrome.google.com/extensions/detail/ckibcdccnfeookdmbahgiakhnjcddpki
- Abonnement RSS comme sur Firefox : https://chrome.google.com/extensions/detail/nlbjncdgjeocebhnmkbbbdekmmmcbfjd
- Google Alerter vous dit combien de news et de mails vous avez https://chrome.google.com/extensions/detail/ikefielkhonlbnjjfhcjmepanaeajkbh
- La même chose mais avec Google Reader uniquement https://chrome.google.com/extensions/detail/jnmalhpnifcgaicdjnacljombhmgagin
- Web Developer vous permet de désactiver les feuilles de styles, d’afficher les mots de passe, d’afficher les identifiants des balises, très utile pour les webmestres https://chrome.google.com/extensions/detail/bfbameneiokkgbdmiekhjnmfkcnldhhm
- Bouton « partager » (twitter, facebook, >gmail, viadeo,…) https://chrome.google.com/extensions/detail/idaeealfhcijmeigljaopafdapgijdcb
- SEO (informations SEO sur la page et le domaine concerné) https://chrome.google.com/extensions/detail/oangcciaeihlfmhppegpdceadpfaoclj
- Google maps dans une bulle (j’adore ! très utile au quotidien) https://chrome.google.com/extensions/detail/oeahddlmhbcabnnojadgimmiaaplfpfo
Les scenarios, très important dans la vie d’un site
Lorsque vous faites développer un site ou des fonctionnalités, vous passez votre temps ensuite à tester différentes façons d’aller à vos objectifs définis (voir plus haut) pour vérifier que tout va bien. Il existe une extension >firefox dans laquelle vous enregistrez, vous faites vos clics une fois, vous stoppez. Vous lisez et ça refait la séquence pour vous en vous affichant les pages une à une et en suivant les mêmes liens. Pratique, rapide ! http://seleniumhq.org/projects/ide/
Envoyer des SMS via une requête HTTP…
J’en rêvais, Orange l’a fait : une simple requête du type http://orange.fr/?numero=33679241181&message=bonjour&marchand=3958093&cle=9835 (lien simplifié à l’extrême mais c’est l’idée) qui vous permette d’envoyer un SMS ? Si vous ne connaissiez pas, vous entrevoyez déjà un tas d’applications ! Prévenir les clients du départ de leurs colis (leur faire payer pourquoi pas ?), rappeler aux mauvais payeurs que vous attendez de leurs nouvelles, indiquer à un partenaire qui bouge tout le temps qu’un sujet mérite son attention sur son interface,… (Les mailings SMS ne sont pas indiqués par ce biais, des entreprises le font très bien avec gestion des désabonnements, etc.) http://api.orange.com/fr/api/sms-api,3
Vérifier l’ensemble des liens de votre site
Vous vous amusez souvent à cliquer sur tous les liens possibles et imaginables sur votre site qui contient plusieurs centaines de milliers de pages ? Des outils le font pour vous et vous font un rapport sur les pages introuvables (404), et sur quelles pages pointaient vers elles ! (utile lorsque l’on crée un lien avec un espace en plein milieu qui mène vers une 404, j’en sais quelque chose !). Cet outil, c’est Xenu, il est pas tout récent, il est pas très beau, mais il est efficace. http://www.google.fr/search?sourceid=chrome&ie=UTF-8&q=telecharger+xenu
Chassez le duplicate content !
Comment ça c’est quoi le duplicate content ? Bon, déjà lisez ça : http://www.google.com/support/webmasters/bin/answer.py?hl=fr&answer=66359
Ensuite, allez là : http://www.webconfs.com/similar-page-checker.php
Je vous rappelle que deux pages différentes, c’est deux URLs différentes (URL = partie avant l’ancre, donc avant un dièse – # – éventuel).
D’autres outils utiles dans cette idée sont disponibles ici : http://www.iwebtool.com/tools/
Vérifiez que votre e-mail n’est pas considéré comme spammeur !
Un lien pour cela : http://www.mxtoolbox.com/blacklists.aspx

» flux RSS du blog
50 conseils e-commerce
par Rom's le 18 mar 2010 (Développement Web)
50 conseils e-commerce à (re)découvrir sur ce post
# Présentez vos produits dès la homepage
# Rassurer vos internautes sur toutes les pages
# Votre numéro de téléphone doit être bien visible
# …

» flux RSS du blog
Sharding : Partitionner vos données les rend plus rapides d’accès
par Rom's le 27 jan 2010 (Développement Web)
Le principe est simple : pour une montée linéaire du nombre de requêtes sur une table, le temps de réponse monte exponentiellement…
A partir de ce simple constat, vous avez compris qu’il est préférable de partitionner vos données soit en faisant plusieurs bases de données, soit en faisant plusieurs tables.
Tous les poids lourds des données utilisent cette méthode : le sharding.
Après cette petite introduction, voici quelques liens :
http://decrypt.ysance.com/2009/05/sharding-partitionnement-optimisation-acces-aux-donnees/
http://www.codefutures.com/database-sharding/
http://highscalability.com/unorthodox-approach-database-design-coming-shard
http://www.pythian.com/news/500/database-sharding-and-the-end-of-raid/

» flux RSS du blog
Être alerté si le trafic augmente rapidement
par Rom's le 02 déc 2009 (Architecture)
Il est important pour tout responsable technique d’être rapidement informé, malgré lui, d’un changement important dans le trafic, notamment à la hausse.
Google Analytics a mis en bêta un système d’alertes qui permet d’être notifié (uniquement par e-mail pour l’instant) lorsque les conditions de ces alertes sont remplies. il s’agit de définir des critères et de remplir un seuil.
Ce qui permet par exemple de dire « si mon nombre de visiteurs uniques par jour est supérieur à X, me prévenir par e-mail ».
Tout simplement.
Reste à faire évoluer le système en fonction, pourvu qu’il soit agile !

» flux RSS du blog
Créer des maquettes fonctionnelles avec les wireframes
par Rom's le 16 nov 2009 (Astuces)
Outil en ligne et gratuit très pratique permettant d’établir facilement et en quelques clics des maquettes fonctionnelles :

» flux RSS du blog
Fonctions à modifier pour le passage à PHP 5.3
par Rom's le 12 nov 2009 (Astuces, Standards)
http://maxime-varinard.developpez.com/tutoriels/php/migration-vers-php-5-3/
encore un très bon article sur developpez.com
Présentation :
L’objectif de cet article n’est pas de réécrire le guide de migration de PHP 5.2 à PHP 5.3 que l’on peut trouver ici : http://fr.php.net/manual/fr/migration53.php
Le but est d’en faciliter la mise en œuvre, en donnant les astuces permettant d’automatiser le plus possible la réécriture du code pour ne plus utiliser de fonctions dépréciées. Bien sûr, suivre à la lettre ces informations peut ne pas suffire à avoir une application 100% compatible PHP 5.3, mais le plus gros du travail sera fait.

» flux RSS du blog
