Catégories
Blog Developpement

De bien beaux graphes pour vos billets

Google dans sa grande bonté propose une API bien utile pour les blogueurs et webmasters en herbe qui veulent simplement intégrer des graphes dans leurs sites. Cette API, nommée Google Chart API, offre une interface de type URL. Nous allons ci-dessous en détailler l’utilisation.Pour illustrer ce billet, nous allons utiliser les tableaux de données suivants que nous voulons transformer en graphes.Tableau n°1:

  • Janvier: 30
  • Février: 36
  • Mars: 47
  • Avril: 50
  • Mai: 48

Tableau n°2:

  • Nom: Citron – Nombre: 8
  • Nom: Pomme – Nombre: 5
  • Nom: Poire – Nombre: 2

Une premier graphe simpleL’API de Google Chart se déclenche à partir d’une URL dont le format est le suivant:

http://chart.apis.google.com/chart?<parametre 1>&<parametre 2>&<parametre n>

et génère une image que l’on pourra facilement intégrer à sa page Web avec un tag de type <img src= »URL »>.Le premier paramètre que l’on peut configurer est la taille finale du graphe (donc de l’image produite par l’API):

chs=<largeur pixels>x<hauteur en pixels>

par exemple si on veut générer un graphe de 300×200, le premier paramètre de votre URL sera:

chs=300×200

le deuxième paramètre sera le type de graphe. Pour cela on utilise le paramètre cht:

cht=<type de graphe>

par exemple pour illustrer le tableau n°, on pourra choisir un graphe de type ligne (line chart= »lc »).

cht=lc

Il ne reste plus qu’a fournir les données du tableau grâce aux paramètres chd:

chd=t:<val 1>,<val 2>, <val 3>

qui dans notre exemple se traduit par:

chd=t:30,36,47,50,48

Pour résumer ce premier exemple, l’URL correspondant à l’image du graphe du tableau n°1 sera:

http://chart.apis.google.com/chart?chs=300x200&cht=lc&chd=t:30,36,47,50,48

Le graphe généré sera donc:

Pour améliorer la visibilité, on peut également ajouter des légendes. Pour cela on précise d’abord que les légendes en x et en y sont requises:

chxt=x,y

puis on définit ces légendes:

chxl=0:|Janvier|Février|Mars|Avril|Mai|

on donne enfin un nom au graphe:

chtt=Tableau+n+°+1

L’URL et le résultat correspondant sont les suivantes:

http://chart.apis.google.com/chart?chs=300x200&cht=lc&chd=t:30,36,47,50,48&chxt=x,y&chxl=0:|Janvier|Février|Mars|Avril|Mai|&chtt=Tableau+n+°+1

Le graphe généré sera donc:

 

On améliore le visuel du graphe

 

Il est possible de modifier ce premier exemple pour mieux l’intégrer dans le design de votre site.

 

Par exemple l’option chts permet de définir la fonte et la couleur à utiliser pour le titre du graphe:

&chts=D0A825,14

ce qui donne:

Il est également possible de modifier le fond du graphe en lui appliquant un dégradé:

chf=c,lg,90,76A4FB,0.5,ffffff,0

ce qui donne:

 

 

Des camemberts ! Des camemberts !

 

D’autres type de graphes sont bien entendu disponibles, par exemple les camemberts, très utiles pour illustrer des données comme notre tableau n°2.

 

Camembert 2D: cht=p2

 

Camembert 3D: cht=p3

 

L’URL à utiliser est alors la suivante:

http://chart.apis.google.com/chart?chs=400x200&cht=p3&chd=t:8,5,2&chxt=x,y&chl=|Citron|Pomme|Poire|&chtt=Tableau+n+°+2

Le graphe généré sera donc:

 

Ce billet n’est qu’une rapide introduction à cette API, si vous voulez allez plus loin et découvrir tout les graphes que vous pouvez intégrer dans vos site, il faut prendre votre Harrap’s et vous rendre sur le site officiel de Google Chart API.

Catégories
Blog

Version 0.9 du plugin WordPress Ziki

Je viens de mettre en ligne une nouvelle version (v0.9) du plugin WordPress Ziki permettant d’afficher son profil numérique sous la forme d’un widget dans la barre de menu (sidebar).

ZikiPlugin

Cette dernière version corrige un bug au niveau de l’affichage de l’avatar suite à une modification des URL sur le site Ziki.

Vous pouvez obtenir la dernière version sur le site officiel et lire une documentation plus précise dans ce billet.

PS: si vous n’êtes pas encore inscrit sur Ziki, c’est le moment ou jamais de créer un compte en cliquant sur la bannière ci-dessous.


Installez le plugin Flash pour voir l’animation : Cliquez ici pour le télécharger



Catégories
Musique

Mes coups de coeur musicaux 2007

Voici un concentré des albums qui m’ont fait vibrés l’année dernière et qui méritent tous d’être découvert (ou re-découvert).

En bonus, une playlist Deezer tirée de ces albums !

free music

Bonne écoute 😉

PS: si Eric passe par là, on aimerait bien une compilation du meilleur des Happy hours 2007 !

Catégories
Open-source Planet-libre Reseau

IPerf: des exemples…

Nous commençons l’année 2008 avec un billet regroupant des exemples d’utilisation d’IPerf, l’outil en ligne de commande indispensable pour tester un réseau informatique.

Pour rappel, IPerf est un logiciel client/serveur, il faut donc deux machines positionner aux deux extremités du réseau à tester pour fonctionner (pour l’installation et une rapide introduction, vous pouvez consulter ce billet).

Dans les exemples ci-dessous, nous allons considérer que nous allons utiliser deux machines nommées C (avec comme adresse IP: IPC) et S (avec comme adresse IP: IPS).

Exemple pour mesurer la bande passante disponible entre S et C

Attention, cette méthode mesure la bande passante au moment du test. Ce dernier dure par défaut 10 secondes et utilise le protocole TCP sur le port 5001.

Sur la machine S: # iperf -s

Sur la machine C: # iperf -c IPS

Résultat (à lire sur la machine S):

————————————————————

Server listening on TCP port 5001TCP window size: 56.0 KByte (default)

————————————————————

[ 6] local 192.168.29.1 port 5001 connected with 192.168.29.157 port 54334

[ 6] 0.0-10.0 sec 112 MBytes 93.7 Mbits/sec

Exemple pour générer un débit réseau entre C et S

On génère ici un flux en utilisant le protocole UDP et en fixant la bande passante à 1 Megabits par seconde. Le test dure par défaut 10 secondes.

Il est possible de choisir l’unité de mesure de débit avec l’option -b et en collant les lettres suivantes aux débits:

  • b: bits par seconde
  • k: kilobits par seconde
  • m: megabits par seconde
  • g: gigabits parseconde

pour un débit en octets par seconde, il faut utiliser ces lettres en majuscule)

Sur la machine S: # iperf -s -u

Sur la machine C: # iperf -c IPS -u -b 4m

Résultat (à lire sur la machine S):

————————————————————

Server listening on UDP port 5001

Receiving 1470 byte datagrams

UDP buffer size: 41.1 KByte (default)

————————————————————

[ 5] local 192.168.29.1 port 5001 connected with 192.168.29.157 port 49617

[ 5] 0.0-10.0 sec 4.77 MBytes 4.00 Mbits/sec 0.066 ms 0/ 3403 (0%)


Exemple pour générer un débit réseau entre C et S pendant 10 heures

Il peut être utile de générer un flux réseau plus long pour tester par exemple une liaison Internet pendant les heures d’utilisation. Nous allons donc utiliser l’option -t pour fixer la durée du test précédent à 10 heures (10*3600=36000 secondes).

Sur la machine S: # iperf -s -u

Sur la machine C: # iperf -c IPS -u -b 4m -t 36000

Résultat (à lire sur la machine S):

————————————————————

Server listening on UDP port 5001

Receiving 1470 byte datagrams

UDP buffer size: 41.1 KByte (default)

————————————————————

[ 5] local 192.168.29.1 port 5001 connected with 192.168.29.157 port 49617

[ 5] 0.0-36000.0 sec 4.77 MBytes 4.00 Mbits/sec 0.066 ms 0/ 999403 (0%)

Il est également possible d’ajouter l’option -i 3600 pour avoir un rapport intermédiaire toutes les heures (1*3600=3600 secondes).

Sur la machine S: # iperf -s -u

Sur la machine C: # iperf -c IPS -u -b 4m -t 3600

Résultat (à lire sur la machine S):

————————————————————

Server listening on UDP port 5001

Receiving 1470 byte datagrams

UDP buffer size: 41.1 KByte (default)

————————————————————

[ 5] local 192.168.29.1 port 5001 connected with 192.168.29.157 port 49617

[ 5] 0.0-3600.0 sec 4.77 MBytes 4.00 Mbits/sec 0.066 ms 0/ – (0%)

[ 5] 3600.0-7200.0 sec 4.77 MBytes 4.00 Mbits/sec 0.066 ms 0/ – (0%)…

[ 5] 0.0-36000.0 sec 4.77 MBytes 4.00 Mbits/sec 0.066 ms 0/ 999403 (0%)

Exemple pour générer 2 flux réseau entre S et C

Il est parfois utile de générer plusieurs flux UDP simultanément pour simuler une application. IPerf permet cela grâce à l’option -P et en donnant le nombre de flux à générer. L’exemple suivant génère 4 flux TCP entre S et C (simulation d’un serveur Web par exemple).

Sur la machine S: # iperf -s

Sur la machine C: # iperf -c IPS -P 4

Résultat (à lire sur la machine S):

————————————————————

Server listening on TCP port 5001

TCP window size: 56.0 KByte (default)

————————————————————

[ 6] local 192.168.29.1 port 5001 connected with 192.168.29.157 port 64978

[ 7] local 192.168.29.1 port 5001 connected with 192.168.29.157 port 64979

[ 8] local 192.168.29.1 port 5001 connected with 192.168.29.157 port 64980

[ 9] local 192.168.29.1 port 5001 connected with 192.168.29.157 port 64981

[ 7] 0.0-10.0 sec 28.0 MBytes 23.5 Mbits/sec
[ 8] 0.0-10.0 sec 28.0 MBytes 23.4 Mbits/sec
[ 9] 0.0-10.0 sec 28.1 MBytes 23.5 Mbits/sec
[ 6] 0.0-10.0 sec 28.1 MBytes 23.5 Mbits/sec
[SUM] 0.0-10.0 sec 112 MBytes 93.8 Mbits/sec

Exemple pour optimiser une connexion TCP entre S et C

Le protocole TCP, bien que capable pour s’adapter aux réseaux large bande, a été conçu lorsque les débits étaient beaucoup moins important. Les valeurs par défaut des fenêtres TCP (taille des paquets envoyé dans des trames TCP) ne sont pas forcement adapté aux réseaux actuels. IPerf permet de jouer avec la taille de ces fenêtres avec l’option -w. L’exemple suivant génère un flux TCP avec une taille de fenêtre de 130 kilo octets.

Sur la machine S: # iperf -s

Sur la machine C: # iperf -c IPS -w 128k

Résultat (à lire sur la machine S):

————————————————————

Client connecting to 192.168.29.1, TCP port 5001

TCP window size: 128 KByte (WARNING: requested 130 KByte)

————————————————————

[ 3] local 192.168.29.157 port 65066 connected with 192.168.29.1 port 5001

[ 3] 0.0-10.0 sec 112 MBytes 93.5 Mbits/sec

Exemple pour découvrir la taille du MTU entre S et C

Le MTU est la taille maximale du paquet pouvant être transmis sur la couche réseau sans être segmenté. La découverte de cette valeur peut être utile à l’optimisation de votre réseau et des applications qui tourne dessus. IPerf permet d’obtenir cette valeur grâce à l’option -m (à lancer sur le serveur).

Sur la machine S: # iperf -s -m

Sur la machine C: # iperf -c IPS

Résultat (à lire sur la machine S):

————————————————————

Client connecting to 192.168.29.1, TCP port 5001

TCP window size: 56.0 KByte (default)

————————————————————

[ 3] local 192.168.29.157 port 65066 connected with 192.168.29.1 port 5001

[ 3] 0.0-10.0 sec 112 MBytes 93.5 Mbits/sec[ 3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)

Exemple pour tester un flux de type VoIP entre C et S

Les paquets de type voix sur IP on les caractéristiques suivantes: protocole UDp et taille des paquets petites (bien inférieure au MTU). Le meilleur moyen de tester un flux de type VoIP avec IPerf est d’utiliser les options -l (taille du datagram) et -w (taille maximale du buffer recevant les datagras) en fixant une valeur de datagram inférieure à celle du buffer.

Sur la machine S: # iperf -s -u -l 32 -w 128k -i 1

Sur la machine C: # iperf -c IPS -u -b 1m -l 32 -w 128k

Résultat (à lire sur la machine S):

————————————————————

Server listening on UDP port 5001

Receiving 32 byte datagrams

UDP buffer size: 128 KByte

————————————————————

[ 3] local 192.168.29.157 port 5001 connected with 192.168.29.125 port 32778

[ 3] 0.0- 1.0 sec 96.0 KBytes 786 Kbits/sec 0.003 ms 0/ 3 (0%)

[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec 0.008 ms 0/ 4 (0%)

[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec 0.017 ms 0/ 4 (0%)

[ 3] 3.0- 4.0 sec 128 KBytes 1.05 Mbits/sec 0.021 ms 0/ 4 (0%)

[ 3] 4.0- 5.0 sec 128 KBytes 1.05 Mbits/sec 0.023 ms 0/ 4 (0%)

[ 3] 5.0- 6.0 sec 96.0 KBytes 786 Kbits/sec 0.022 ms 0/ 3 (0%)

[ 3] 6.0- 7.0 sec 128 KBytes 1.05 Mbits/sec 0.152 ms 0/ 4 (0%)

[ 3] 7.0- 8.0 sec 128 KBytes 1.05 Mbits/sec 0.142 ms 0/ 4 (0%)

[ 3] 8.0- 9.0 sec 128 KBytes 1.05 Mbits/sec 0.115 ms 0/ 4 (0%)

[ 3] 9.0-10.0 sec 128 KBytes 1.05 Mbits/sec 0.098 ms 0/ 4 (0%)

[ 3] 0.0-10.5 sec 1.25 MBytes 1.00 Mbits/sec 0.116 ms 0/ 40 (0%)

Remarque: bien que Iperf soit disponible sur de nombreuses plate-forme (Linux, BSD, Mac, Windows), l’option -l ne fonctionne pas toujours quand vous utiliser des OS différents entre le client et le serveur.

Exemple pour utiliser IPerf sur un port différent

Par défaut, Iperf utilise le numéro de port 5001 (TCP et/ou UDP). Selon votre configuration (notamment au niveau des ACL des routeurs/firewalls), il peut être utile d’utiliser un autre port, pour cela, il faut passer par l’option -p. L’exemple suivant permet de générer un flux réseau TCP entre S et C sur le port 80 (port Web standard).

Sur la machine S: # iperf -s -p 80
Sur la machine C: # iperf -c IPS -p 80

Résultat (à lire sur la machine S):

————————————————————

Server listening on TCP port 80

TCP window size: 56.0 KByte (default)

————————————————————

[ 6] local 192.168.29.1 port 5001 connected with 192.168.29.157 port 54334

[ 6] 0.0-10.0 sec 112 MBytes 93.7 Mbits/sec


Voici donc quelques exemple d’utilisation d’Iperf, si vous en avez d’autres, les commentaires sont ouverts !

Catégories
Blog

Bonne année 2008 !

De retour de congés (encore avec les moonboots aux pieds, ceux avec la fourrure…) pour vous souhaitez à une très bonne année 2008 à vous et à vos proches. Une pensée particulière aux lecteurs qui me suivent régulièrement ainsi qu’aux blogueurs francophones !