Tag - outils

28/ 07/2010

URLs raccourcies et encodage en base 62

De plus en plus de systèmes de raccourcissement d'URL existent, et le système est somme toute relativement simple à mettre en place. Il demande un peu de logique et l'utilisation d'un encodage en base 62: les 10 chiffres et les 26 lettres (minuscules et majuscules).

Lire la suite...

27/ 04/2010

Tests unitaires et couverture de code

Les tests unitaires sont au développeur ce que la prose est à M. Jourdain: ils en font sans le savoir. Malheureusement, ces tests ne sont pas souvent effectués de manière complète et approfondie, et le développeur ne s'intéresse pas au complément de ces tests: la couverture de code.

Heureusement, il existe des outils qui simplifient ce travail et le rendent plus cohérent. Je traiterai ici des procédures lorsqu'on développe en PHP, en m'appuyant sur PHPUnit.

Lire la suite...

21/ 03/2010

Script de sauvegarde automatique

Ce petit script permet de générer des archives horodatées de répertoires sur une machine unix. Il suffit que tar et gunzip soient installés et de configurer les 4 variables, puis d'ajouter une entrée pour ce script dans crontab.

Dans cet exemple, le but est de sauvegarder le répertoire /home/g33kzone/public_html/ (le site) et /var/lib/mysql/g33kzone/ (la base MySQL du site) dans le répertoire /home/backups/. Les fichiers de sauvegarde seront nommés archive_YYYYMMDD.tgz, c'est à dire archive_20100321.tgz pour l'archive du 21 mars 2010.

L'option "VERBOSE" permet d'avoir un affichage des fichiers archivés, elle est à utiliser pour le debug ou si vous voulez enregistrer l'activité d'archivage dans un fichier de log.

#!/bin/bash
 
###############################################
#  Configuration
###############################################
# Destination
BACKUP_DIR="/home/backups/"
# Directories to save
FILESYSTEMS="/home/g33kzone/public_html /var/lib/mysql/g33kzone/"
 
# basename of the archive file
BASE_NAME="archive_"
 
# Would you like to get detailed information from tar and gzip? 0=false,
# 1=true
VERBOSE=0
 
# DO NOT EDIT BELOW THIS LINE
#--------------------------------------------------------
###############################################
#     Application Variables - DO NOT EDIT #
###############################################
# Day of the week;
NOW=`date +"%Y%m%d"`
# Script name
SCRIPTNAME="Backup Script"
# Version
VERSION=0.01
######## Do some error checking #########
# Does backup dir exist?
if [ ! -d $BACKUP_DIR ]
  then
    echo "The specified backup directory $BACKUP_DIR does not exist. Operation canceled."
    exit 1
fi
######## Run Backup #########
LEVEL=0
if [ $VERBOSE -eq 1 ]
  then
    tar cvfz $BACKUP_DIR/$BASE_NAME.$NOW."tgz" $FILESYSTEMS
  else
    tar cfz $BACKUP_DIR/$BASE_NAME.$NOW."tgz" $FILESYSTEMS
fi
 
exit 0

30/ 10/2009

Le gratuit meilleur que le plus cher

Mon PC étant parti d'une base assez ancienne qui n'a subit que des évolutions au fur et à mesure, il subsiste parfois des héritages dont j'aimerais me passer.

Par exemple, mon disque principal de 20Go qui à l'époque de windows 95 était partitionné en deux fois 10 Go, pour avoir le système d'un côté et les documents de l'autre. Les années ont passé, windows XP est arrivé, j'ai acheté des disques supplémentaires, mais j'ai toujours laissé mon système sur ce brave vieux Maxtor.

Il y a quelques temps de ça, j'ai voulu rendre à mon disque système toute sa taille, et j'ai fait un petit tour des logiciels de repartitionnement. J'ai jeté mon dévolu sur Partition Magic qui semblait être LE bijou dont j'avais besoin, la version d'évaluation (qui simule mais ne fait rien) m'ayant dit que tout était parfait. Et bien non, PM échouait, même lorsque je faisais bien comme il me disait de faire, en suivant ses conseils et ses prérogatives... J'ai pu redonner de l'espace à mon disque principal, mais il avait toujours une partition de 4Go dont je n'avais que faire.

Aujourd'hui, tout à fait par hasard, je suis tombé sur EASEUS Partition Master 4.0.1, qui en plus est gratuit dans sa version "Home Edition". Je lui ai programmé 3 opérations sensibles:

  • supprimer cette partition inutile
  • donner la taille maximale possible à la partition primaire
  • agrandir une partition qui ne prenait pas tout un disque

Le temps de boire un café et le freeware a tout bien fait, sans aucune perte.

21/ 10/2009

Classe de recherche Google

Ainsi que je le disais dans ce billet, j'ai réalisé une classe pour exploiter l'API de recherche de Google sans utiliser AJAX. Elle permet de faire les recherches dans 7 catégories: web, images, vidéos, blogs, actualités, livres et cartes.

Vous trouverez sa mise en application sur cette page

Lire la suite...

02/ 06/2009

Utilisation des APIs Google sans javascript

Google permet aux webmasters d'intégrer des résultats de recherche sur leur site en utilisant des fonctions Ajax, mais il peut être utile de récupérer les résultats autrement, par exemple pour les stocker en base.

Heureusement, Google fournit un moyen d'interroger son moteur de recherche directement (par une requète GET) qui renvoie un résultat en JSON[1]

Notes

[1] JSON (JavaScript Object Notation) est un format de données textuel qui permet de représenter de l'information structurée.

Lire la suite...

19/ 03/2009

firefox: les modules intéressants

La plupart des personnes développant des sites internet préfèrent utiliser firefox, car ses modules sont très nombreux et la catégorie Développement Web est bien achalandée.

Voici une petite liste des modules qui me semblent les plus intéressants pour développer dans des conditions optimales.

Lire la suite...