Switch to English
( Blog - Gratuit)

Typeface sépare inutilement lorsqu'il rencontre un caractère spécial (Unicode) - IE

Écrit par David Grégoire | 23 mars 2010 | 0

Nous utilisons régulièrement Typeface pour appliquer une police particulière à du texte sur le web.

Nous avons rencontré un bug: l'engin de regex séparait le mot "français" à "franç" et "ais". La séparation se faisait lorsque l'engin rencontre un caractère accentué ou UTF8 - Unicode.

L'apparence était parfaite dans plusieurs navigateurs, mais dans Internet Explorer, un espace était inséré car le script créait deux balises distinctes et consécutives.

Il y a une solution !  Il suffit de changer la ligne #289 du fichier typeface.js à ceci:

var words = text.split(/\b(?=\X)/);

Et l'affaire est ketchup !

Credits: http://twitter.com/tousdan

Tags: accents, caracteres spéciaux, java, regex, typeface, unicode,

Catégorie: Gratuit

Partager:

Logiciel de "versionning" de fichiers et dossiers

Écrit par David Grégoire | 8 janvier 2010 | 0

Trop souvent, on modifie ou on écrase (ou même supprime) un fichier en travaillant.  Surtout lorsque le fichier est situé sur un lecteur partagé par plusieurs utilisateurs et que, ô misère, deux personnes l'éditent simultanément.

J'ai donc cherché et essayé plusieurs solutions à ce problème.

Il y a Subversion (SVN), mais cela nécessite une infrastructure particulière, et pour l'instant et de la manière qu'on travaille chez http://Sparko.ca, ce n'est pas tellement adapté.

Nous avons arrêté notre choix sur AutoVer, une petite application gratuite sous Windows développée par un australien. (http://beanland.net.au/AutoVer/)

Le programme s'installe facilement.  On peut paramétrer autant de dossiers qu'on veut, filtrer ce qui va être surveillé, et décider quoi faire des versions plus vieilles. On peut également comparer les changements faits entre chaque version.

Dans notre cas, j'ai programmé les paramètres pour surveiller tous nos dossiers de projets (situé sur un lecteur réseau) et les fichiers à l'intérieur.  La sauvegarde des versions de fichiers et dossiers se fait sur un autre lecteur externe.

À toutes les fois qu'un utilisateur appuie sur "sauvegarder" de n'importe quel programme (Notepad++, Photoshop, Office...), une version du fichier avant sauvegarde est enregistrée sur l'autre lecteur au même chemin.  Ainsi, le fichier

E:\projets\projet1\html\salut.php
se sauvegarde sous
F:\projets\projet1\html\salut.php.JJMMAAAAHHMMSS.php

Ainsi donc, lorsque un individu (i.e. Joël) supprime par erreur un fichier, on peut le restaurer aussitôt!

Tags: autoVer, back-up, backup, fichiers, files, freeware, programme, sauvegarde, software, versionning,

Catégorie: Gratuit

Partager:

Image Email script, la solution au spam!

Écrit par Joel Landry | 4 janvier 2010 | 0

Voici un truc très simple pour ne pas recevoir de spam dans votre boîte courriel lorsque vous affichez votre courriel sur un site web avec une haute popularité.

Créé une page email.php contenant ce code:

// Configuration des variables
$emails[1] = "info@domaine.com";
$emails[2] = "test@domaine.com";
//$emails[n] = "nimportequoi@domaine.com";
$pathToFont = "fonts/arial.ttf"; //Fichier police système


// Variables par défaut
$maxWidth = 150;
$maxHeight = 16;
$paddding = 12;
$size = 10;
$background = "ffffff";
$color = "000000";
$emailAddress = "courriel@domaine.com";


// Réception des variables
$maxWidth = (isset($_GET['width'])) ? (integer)$_GET['width']:$maxWidth;
$maxHeight = (isset($_GET['height'])) ? (integer)$_GET['height']:$maxHeight;
$paddding = (isset($_GET['padding'])) ? (integer)$_GET['padding']:$paddding;
$size = (isset($_GET['size'])) ? (integer)$_GET['size']:$size;
$background = (isset($_GET['background'])) ? ($_GET['background']):($background);
$color = (isset($_GET['color'])) ? ($_GET['color']):($color);
$emailAddress = (isset($emails[$_GET['email']])) ? ($emails[$_GET['email']]):$emailAddress;

// Fonction convertisseur
function hexToRGB($hex) {
	$hex = str_replace("#", "", $hex);
	$color = array();
	
	if(strlen($hex) == 3) {
		$color['r'] = hexdec(substr($hex, 0, 1) . $r);
		$color['g'] = hexdec(substr($hex, 1, 1) . $g);
		$color['b'] = hexdec(substr($hex, 2, 1) . $b);
	}
	else if(strlen($hex) == 6) {
		$color['r'] = hexdec(substr($hex, 0, 2));
		$color['g'] = hexdec(substr($hex, 2, 2));
		$color['b'] = hexdec(substr($hex, 4, 2));
	}
	
	return $color;
}

// Création d'une image
$im = imagecreatetruecolor($maxWidth, $maxHeight);
$rgb = hexToRGB($background);
$backgroundColor = imagecolorallocate($im, $rgb["r"], $rgb["g"], $rgb["b"]);
$rgb = hexToRGB($color);
$fontColor = imagecolorallocate($im, $rgb["r"], $rgb["g"], $rgb["b"]);


// Ajoute la couleur en fond
imagefilledrectangle($im, 0, 0, $maxWidth-1, $maxHeight-1, $backgroundColor);
imagecolortransparent($im, $backgroundColor); 

// Configuration de la taille
$coord = imagettfbbox ( $size ,0 , $pathToFont , "($emailAddress)" );
if($coord[2] > $maxWidth) $size = 9;

// Création de l'image email
imagettftext ( $im, $size , 0 , 0 , $paddding , $fontColor, $pathToFont , $emailAddress );

// Affiche l'image sur le navigateur
header('Content-type: image/gif');
imagegif($im);
imagedestroy($im);

Ensuite, il suffit d'apeller dynamiquement cette page et de lui passé les paramètre voulu pour afficher un courriel en image.

On l'utilise comme suit:

email.php?email=1&color=F0F0F0&background=000000&width=220&height=16&padding=12

Les variables sont:

email: La référence au courriel que l'on veut afficher (déclaré dans le script)
color:
La couleur de la police
background: Couleur du fond
width: largeur de l'image
height: hauteur de l'image
padding: espacement à l'intérieur de l'image

Voici à quoi sa ressemble au final:

NOTE: La librarie GD2 doit être "enabled" dans votre configuration de PHP.

Tags: email, image email, spam,

Catégorie: Gratuit

Partager:

Erreur Apache HTTPD: NoCase option for non-regex pattern is not supported and will be ignored.

Écrit par Sparko | 4 janvier 2010 | 0

Une erreur Apache est venue poluer les logs d'un de nos serveurs.  On (les programmeurs en général) a souvent tendance à ajouter la balise [NC] dans nos fichiers .htaccess pour ne pas tenir compte de la casse en utilisant RewriteCond.

L'erreur déclenchée est alors:
 

[warn] RewriteCond: NoCase option for non-regex pattern '-f' is not supported and will be ignored.

[warn] RewriteCond: NoCase option for non-regex pattern '-d' is not supported and will be ignored.

 

Alors plutôt que d'utiliser ceci dans le .htaccess
 

RewriteCond %{REQUEST_FILENAME} !-f [NC,OR]

RewriteCond %{REQUEST_FILENAME} !-d [NC]


il faudrait plutôt utiliser:
 

RewriteCond %{REQUEST_FILENAME} !-f [OR]

RewriteCond %{REQUEST_FILENAME} !-d

 

Une autre solution, bien meilleure celle-là est d'utiliser
 

RewriteCond %{REQUEST_FILENAME} -f

RewriteRule "." - [skip=100]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule "." - [skip=100]

 

Tags: apache, htaccess, httpd, NoCase, REQUEST_FILENAME, rewriteCond,

Catégorie: Gratuit

Partager:

  • Pages :
  • 1
  • 2