Astuces de Webmaster

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

1 Commentaire :, , Lien Permanent

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 :

Liste des services Google sur code.google.com

2 Comments :, Lien Permanent

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’;

Voir la doc

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

2 Comments :, , , , Lien Permanent

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

2 Comments :, , , , , , , Lien Permanent

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 ;-) )

Visuel de la préparation de scripts avec Kettle

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.

8 Comments :, , Lien Permanent

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…)

27 Comments :, , , , , , Lien Permanent

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 »
},
(…)

(http://maps.google.com/maps/api/directions/json?origin=Boston,MA&destination=Concord,MA&waypoints=Charlestown,MA|Lexington,MA&sensor=false
Enjoy !

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

2 Comments :, , , , , , , Lien Permanent

50 conseils e-commerce

by Rom's on 18 mar 2010, under Développement Web

http://www.info-ecommerce.fr/183/50-conseils-pour-optimiser-votre-taux-de-conversion-e-commerce/taux-de-conversion/

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
# …

Laisser un commentaire : Lien Permanent

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/

Laisser un commentaire :, , , Lien Permanent

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>

Laisser un commentaire :, , , Lien Permanent

Vous cherchiez ?

Recherche rapide :

Vous ne trouvez toujours pas ? Laissez un petit commentaire sur un article, qu'on puisse regarder ça de plus près !