Développement Web
Recherchons développeur PHP5 / Paris
by Rom's on 02 déc 2010, under Développement Web
Petite annonce emploi
On recherche un développeur / chef de projet PHP5 ayant de l’expérience dans le développement MVC (Zend Framework / Symfony).
Secteur de l’automobile : être passionné est un plus ![]()
Projets : site e-commerce, gestion de flux de données, historisation, webservices, extranet, interfaces innovantes.
Rémunération attractive (28-35K€) suivant profil, poste sur Paris
Contactez-moi, je transmets : mail@romain.biz
Liste des APIs de Google
by Rom's on 19 oct 2010, under Développement Web
La liste complète et à jour des APIs de Google se trouve ici :
Commandes SSH pour MySQL
by Rom's on 19 oct 2010, under Développement Web
Se connecter en SSH à un SGBD MySQL lorsque l’on est connecté en SSH
mysql -u UTILISATEUR -p
Une invite vous demande alors de taper le mot de passe. Si vous ne vous trompez pas, le prompteur est précédé de mysql> dorénavant pour signifier que vous êtes en invite de commande MySQL.

Sélectionner une base de données
(vous pouvez également la passer en paramètre dans la ligne de commande plus haut mais cette méthode permet davantage d’utilisations).
mysql> USE NOMBDD
Ce qui devrait vous renvoyer « Database changed »
doc
Faire des requêtes
Contrairement à PHPMyAdmin et compagnie, vous devez absolument terminer vos requêtes par un point virgule. Si vous ne le faites pas et que vous faites entrer, l’invite vous proposera de compléter votre requête jusqu’à ce que vous terminiez votre requête par un point virgule et que vous validiez.


Exécuter une liste de requêtes MySQL
Il suffit d’exécuter une commande du type
mysql -u[nomUtilisateur] -p [nomBaseDeDonnees] < "/chemin/vers/fichier_contenant_requetes.txt"
L’invite de commande vous demandera votre mot de passe puit affichera de nouveau le prompteur si tout se passe bien Evidemment, chaque requête doit être terminée par un point virgule.


Pour exporter les résultats d’une requête vers un fichier texte ou autre
Il ne faut pas être connecté sur le serveur MySQL : si vous êtes connecté, tapez la commande « exit; » pour vous retrouver sur le shell standard puis tapez cette commande :
mysql -u[nomUtilisateur] -p [nomBaseDeDonnees] < /tmp/sql.sql > /tmp/outfile.txt;
ou si vous êtes déjà dans l’invite MySQL
SELECT * FROM table WHERE 1 INTO OUTFILE ‘/tmp/testRequeteExport.sql’;
Pour exporter une base vers un fichier
Il ne faut pas être connecté sur le serveur MySQL : si vous êtes connecté, tapez la commande « exit; » pour vous retrouver sur le shell standard puis tapez cette commande :
mysqldump -u[nomUtilisateur] -p [nomBaseDeDonnees] > /tmp/export_nomBaseDeDonnees.sql;
un prompt vous demandera le mot de passe de l’utilisateur en question

Pour exporter une table vers un fichier
Il ne faut pas être connecté sur le serveur MySQL : si vous êtes connecté, tapez la commande « exit; » pour vous retrouver sur le shell standard puis tapez cette commande :
mysqldump -u[nomUtilisateur] -p [nomBaseDeDonnees] [nomTable] > /tmp/export_nomBaseDeDonneesEtTable.sql;
un prompt vous demandera le mot de passe de l’utilisateur en question
Nouveau format d’image compressé : WEBP
by Rom's on 07 oct 2010, under Développement Web
A lire sur Alsacreations.com : Google introduit le WebP, un nouveau format d’image et en anglais sur http://blog.chromium.org/2010/09/webp-new-image-format-for-web.html
A noter :
- Les JPG + GIF constituent 65% du poids des pages web
- des gains entre 10 et 60% par rapport à JPG !
- Galerie de démonstration de leurs performances : http://code.google.com/intl/fr/speed/webp/gallery.html
ETL Kettle – Découverte de l’outil d’ETL de Pentaho Data Integration
by Rom's on 24 août 2010, under 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 4.0 (http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=spoon+4.0)
Je vous mets ici bientôt quelques exemples de scripts que vous puissiez jouer avec.
PHP : Distance en KM grâce à Google Maps API Directions
by Rom's on 21 août 2010, under 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
);
}
Le guide from Google est par là : http://code.google.com/intl/fr-FR/apis/maps/documentation/directions/
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…)
Itinéraire et Distance via HTTP (PHP par ex) : l’API de Google Maps a évolué !
by Rom's on 20 mai 2010, under Architecture, Développement Web, DSI
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/
Le script PHP permettant de calculer l’itinéraire est ici : PHP : distance en kilomètres, durée et étapes du trajet grâce à Google Maps API Directions
50 conseils e-commerce
by Rom's on 18 mar 2010, under 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
# …
Sharding : Partitionner vos données les rend plus rapides d’accès
by Rom's on 27 jan 2010, under 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/
Streaming PHP, lire une vidéo à la volée
by Rom's on 03 nov 2009, under Développement Web
Philflash propose un outil permettant de lire une vidéo en streaming via une application PHP réalisée par Jeroen Wijering et proposé sous licence Creative Commons License (20€ pour usage commercial).
Dernière mise à jour en mai 2008 : http://www.inwayvideo.com/phpflvplayer/src/PHPStreamingSource135.zip
http://www.inwayvideo.com/phpflvplayer/index.html
Tout est paramétrable comme le montre l’exemple :
<head>
<script type= »text/javascript » src= »swfobject.js »></script>
<script type= »text/javascript »>
var attributes = {};var params = {};
// for fullscreen
params.allowfullscreen = « true »;var flashvars = {};
// the video file or the playlist file
flashvars.file = « myvideo.flv »;// the PHP script (1.5 is a recommended value for PHP Streaming for bufferlength)
flashvars.streamscript = « flvprovider.php »;
flashvars.bufferlength = « 1.5″;// width and height of the player (h is height of the video + 20 for controlbar)
// required for IE7
flashvars.width = « 320″;
flashvars.height = « 260″;
// width and height of the video
flashvars.displaywidth = « 320″;
flashvars.displayheight = « 240″;
flashvars.autostart = « true »;
flashvars.showdigits = « true »;// for fullscreen
flashvars.showfsbutton = « true »;// 9 for Flash Player 9 (for ON2 Codec and FullScreen)
swfobject.embedSWF(« phpsflvplayer.swf », « flashcontent », « 320″, « 260″, « 9.0.0″, « playerProductInstall.swf », flashvars, params, attributes);
</script>
</head>
<body>
<div id= »flashcontent »>
</div>
…
</body>


