lundi 20 septembre 2010

Géopipi - Le site qui vous soulage

Vous partez en vacances avec de jeunes enfants, vous visitez une ville en accompagnant une personne handicapée/âgée ou bien tout simplement vous recherchez les wc les plus proches !


 GeoPipi est là pour vous aider et surtout localiser directement et sans attendre les toilettes publiques (gratuites et payantes).

Si ca presse, c'est par là !

jeudi 26 août 2010

Géocodage Automatique d'adresses

Un petit outil sympa, basé sur l'API Google Map©, pour géolocaliser automatiquement une liste d'adresses :
Batch geocodeur

Testé avec un fichier de 3 000 lignes d'adresses environ, l'opération a duré près de 2 heures.
Les points générés sont en degrés décimaux, système de coordonnées WGS84 - EPSG 4326

Taux de réussite :
  • 35,5 % localisé à l'adresse (accuracy = 8)
  • 29% localisé à la rue (accuracy = 6)
  • 35 % localisé à la ville (accuracy = 4)
  • 0,5% non localisé (accuracy = 0)
Intéressant ! Non ?

Merci à mon nouveau collègue pour l'info et les explications.

mardi 20 avril 2010

Débordé



Pas trop le temps de bloguer en ce moment :
  • Formation Techniques de Virtualisation chez Linagora (fin mars)
  • Formation MySQL DBA chez Anaska (début avril - Sympa les grèves à la SNCF)
  • Tests de solutions Haute Disponibilité Linux : Kvm/QEmu,Xen - Ovirt - HeartBeat - DRBD - iScsi
Les autres formations arrivent :
  • Formation LPIC 102 + Certification LPIC 101 +102 chez Linagora (début juin)
  • Formation MySQL HA chez Anaska (en mai)
Fiouuuu !

J'en profite pour saluer mes co-formés et les formateurs !

dimanche 18 avril 2010

Conseil de lectures - Heroic Fantasy

Envie de voyager ?
Plongez dans les mondes merveilleux des meilleurs auteur du genre !

David Eddings

  • La Belgariade
    • Le Pion blanc des présages
    • La Reine des sortilèges
    • Le Gambit du magicien
    • La Tour des maléfices
    • La Fin de partie de l'Enchanteur
  • La Mallorée
    • Les Gardiens du Ponant
    • Le Roi des Murgos
    • Le Démon Majeur de Karanda
    • La Sorcière de Darshiva
    • La Sibylle de Kell
  • Les préquelle
    • Belgarath le sorcier
    • Polgara la sorcière
    • Le Codex de Riva (guide du monde)

La Malerune

  • Les Armes des Garamont (Pierre Grimbert)
  • Le Dire des sylfes (Michel Robert)
  • La Belle Arcane (Michel Robert)

Robin Hobb

Prélude aux cycles de l’Assassin royal et des Aventuriers de la mer

  • Retour au pays

A. Premier cycle de l’Assassin royal

1 - L'Apprenti assassin
2 - L'Assassin du roi
3 - La Nef du crépuscule
4 - Le Poison de la vengeance
5 - La Voie magique
6 - La Reine solitaire

B. Le cycle des Aventuriers de la mer

1 - Le Vaisseau magique
2 - Le Navire aux esclaves
3 - La Conquête de la liberté
4 - Brumes et Tempêtes - Mad Ship
5 - Prisons d’eau et de bois
6 - L’Éveil des eaux dormantes
7 - Le Seigneur des trois règnes
8 - Ombres et Flammes
9 - Les Marches du trône

C. 2nd cycle de l’Assassin royal

9 - Le Prophète blanc
8 - La Secte maudite
9 - Les Secrets de Castelcerf
10 - Serments et Deuils
11 - Le Dragon des glaces
12 - L'Homme noir
13 - Adieux et Retrouvailles

D. Les Cités des anciens 

1 - Dragons et Serpents
2 - Les Eaux acides
3 - La Fureur du fleuve
4 - La Décrue
5 - Les Gardiens des souvenirs
X - A paraitre

Robert Jordan

A. Série La Roue du temps

(Édition 'Rivages et Fleuve noir')

1 - L'Invasion des ténèbres / La Roue du temps
2 - L'Œil du monde
3 - Le Cor de Valère
4 - La Bannière du dragon
5 - Le Dragon réincarné
6 - Le Jeu des ténèbres
7 - La Montée des orages
8 - Tourmentes
9 - Étincelles
10 - Les Feux du ciel
11 - Le Seigneur du chaos
12 - L'Illusion fatale
13 - Une couronne d'épées
14 - Les Lances de feu
15 - Le Sentier des dagues
16 - Alliances
17 - Le Cœur de l'hiver
18 - Perfidie
19 - Le Carrefour des ombre
 20 - Secrets
21 - Le Poignard des rêves
22 - Le Prince des corbeaux
xx - A paraitre

jeudi 18 mars 2010

MySQL - Modifier le prompt du client

Logo MySQL, fév. 2010



Encore un billet de qualité sur dbnewz.com sur la personnalisation du prompt de Mysql.




Pour ma part, j'ajoute à mon /etc/my.cnf les directives suivantes :

 [mysql]                     // Section du client mysql
 prompt=(\\u@\\h) [\\d]>\\_  // Affiche un prompt indiquant l'utilisateur, la machine et la base courante
Plus d'info sur la page d'aide de la commande mysql
Happy MySQL !

mercredi 3 mars 2010

MySQL - Activer le cache de requêtes


Depuis la version 4.0.1, MySQL server bénéficie d'un cache de requêtes.

Si une requête identique est appelée par la suite, le serveur retournera le résultat à partir du cache plutôt que d'analyser puis exécuter la requête à nouveau.


Le cache de requêtes est extrêmement utile dans un environnement où les tables ne changent pas souvent, et que vous avez de nombreuses requêtes identiques.
C'est la situation classique des serveurs Web, qui génèrent beaucoup de pages dynamiques à partir du même contenu.

Utiliser le cache de requête est très utile si vous avez beaucoup de lecture et peu de modifications d'enregistrements. Ex: présentation de contenu dynamique sur un site web.

A Noter : Le cache est sensible à la casse : pour lui la requête Select * FROM ... est différente de ''SELECT * FROM ...'".
Les deux résultats, identiques, seront stockés dans le cache, alors soyez rigoureux dans votre code.

Par défaut, le cache de requêtes est paramétré à minima ...

mysql> SHOW VARIABLES LIKE 'have_query_cache';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_query_cache | YES   |
+------------------+-------+
1 row in set (0.00 sec)
 
...mais n'est pas actif :

mysql> SHOW STATUS LIKE 'Qcache%';
+-------------------------+-------+
| Variable_name           | Value | 
+-------------------------+-------+
| Qcache_free_blocks      | 0     | 
| Qcache_free_memory      | 0     | 
| Qcache_hits             | 0     | 
| Qcache_inserts          | 0     | 
| Qcache_lowmem_prunes    | 0     | 
| Qcache_not_cached       | 0     | 
| Qcache_queries_in_cache | 0     | 
| Qcache_total_blocks     | 0     | 
+-------------------------+-------+
8 rows in set (0.00 sec)

Pour l'activer, il faut passer quelques paramètres au serveur MySQL.

En ligne
C'est le mieux pour un serveur en production qui ne peut pas être redémarrer à la demande. De plus vous pouvez pouvez ajuster les valeur en fonctions de vos besoins.

mysql> SET GLOBAL query_cache_type = 1;
Query OK, 0 rows affected (0.00 sec) 

mysql> SET GLOBAL query_cache_limit=2097152;
Query OK, 0 rows affected (0.00 sec) 
 
mysql> SET GLOBAL query_cache_size=32M;
Query OK, 0 rows affected (0.00 sec)
 
Ces valeurs sont données à titre d'exemple. Je vous laisse le soin de les adapter à votre contexte.

On attend quelques minutes et on jette un oeil :

mysql> SHOW STATUS LIKE 'Qcache%';
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 177      | // Nombre de blocs de mémoire libre dans la cache de requêtes. 
| Qcache_free_memory      | 32759616 | // Quantité de mémoire libre dans la cache de requêtes. 
| Qcache_hits             | 13238    | // Nombre de succès dans la cache. 
| Qcache_inserts          | 1599     | // Nombre de requêtes ajoutées à la cache. 
| Qcache_lowmem_prunes    | 0        | // Nombre de requêtes qui ont été retirées de la cache pour libérer de la mémoire afin de mettre en cache de nouvelles requêtes. Peut être utilisé afin de peaufiner la taille de la cache. La stratégie utilisée pour déterminer quelles requêtes seront retirées est LRU (least recently used).
| Qcache_not_cached       | 26       | // Nombre de requêtes non en cache (impossible à placer en cache, ou non cachée en raison du paramètre query_cache_type).
| Qcache_queries_in_cache | 548      | // Nombre de requêtes enregistrées dans la cache. 
| Qcache_total_blocks     | 1316     | // Nombre total de blocs dans la cache de requêtes. 
+-------------------------+----------+
8 rows in set (0.00 sec)
 
N'oubliez pas de sauvegarder vos réglages dans le fichier de conf de MySQL.

Au lancement du serveur
  • Editer le fichier de configuration /etc/my.cnf et ajouter les lignes suivantes:
#Query Cache
query_cache_type=1    // Cache all cacheable query results except for those that begin with SELECT SQL_NO_CACHE.
query_cache_limit=4M  // Don't cache results that are larger than this number of bytes. The default value is 1MB.
query_cache_size=8M   // The amount of memory allocated for caching query results. The default value is 0, which disables the query cache. The allowable values are multiples of 1024; other values are rounded down to the nearest multiple.
  • Redémarrer le serveur MySQL pour que les paramètres soient pris en compte.
Vous pouvez aussi ajouter des paramètres au lancement du daemon, mais ce n'est pas forcément une bonne idée car les scripts de démarrages sont écrasés à chaque mise à jour des paquets.

Reste à patienter quelques jours pour apprécier le résultat. Tunnez les paramètres si besoin !

Have Fun !

Pour aller plus loin :